#!/usr/bin/env python

import sys
from collections import defaultdict
from typing import Dict, List, Set

Map = Dict[str, Set[str]]


def solve(input: List[str]) -> int:
    def parse() -> Map:
        res: Map = defaultdict(set)

        for start, to in map(lambda s: s.split("-"), input):
            res[start].add(to)
            res[to].add(start)

        return res

    caves = parse()

    def dfs(start: str, seen: Set[str] = set(), has_doubled_back: bool = False) -> int:
        if start == "end":
            return 1

        seen = seen | {start}
        res = 0

        for dest in caves[start]:
            doubles_back = False
            if dest in seen and dest.islower():
                if has_doubled_back or dest == "start":
                    continue
                doubles_back = True
            res += dfs(dest, seen, has_doubled_back or doubles_back)

        return res

    return dfs("start")


def main() -> None:
    input = [line.strip() for line in sys.stdin.readlines()]
    print(solve(input))


if __name__ == "__main__":
    main()