from functools import reduce from collections import defaultdict d = defaultdict(int) d[(0, 0)] = 1 def reducer(state, move): d, pos = state npos = (pos[0] + move[0], pos[1] + move[1]) d[npos] += 1 return (d, (npos)) print(len(reduce(reducer, ({'^': (0, 1), 'v': (0, -1), '>': (1, 0), '<': (-1, 0)}[c] for c in open('input').read().rstrip('\n')), (d, (0, 0)))[0]))