여정

시간 제한1초메모리 제한128 MB

문제

한 로봇이 좌표평면 위에서 살며 평면을 돌아다니는 것을 좋아한다. 어느 날 로봇은 정교한 여정을 계획하고, 그대로 따라갈 프로그램을 작성했다. 이 프로그램은 $n$개의 함수 $f_1, f_2, \dots, f_n$으로 이루어져 있다. $i$번째 함수 $f_i$는 $c_i$개의 명령으로 이루어진 수열이며, 각 명령은 다음 중 하나이다.

  • GO — 바라보는 방향으로 1미터 전진한다.
  • LEFT — 왼쪽(반시계 방향)으로 90도 회전한다.
  • RIGHT — 오른쪽(시계 방향)으로 90도 회전한다.
  • F$k$ — 함수 $f_k$의 모든 명령을 실행한 뒤, 현재 함수의 다음 명령으로 돌아와 계속 실행한다.

로봇은 집인 $(0, 0)$에서 처음에 $x$축의 양의 방향을 바라본 채로 출발하여, 함수 $f_1$을 실행하기 시작한다.

예를 들어 함수가 다음과 같다고 하자.

  • $f_1$: GO F2 GO F2 GO F2
  • $f_2$: F3 F3 F3 F3
  • $f_3$: GO LEFT

이 함수들에 대해 로봇은 평면 위에 특정한 경로를 그리며 이동한다.

여정이 결코 끝나지 않을 수도 있다. 예를 들어 유일한 함수 $f_1$이 GO F1인 프로그램에서는 로봇이 앞으로 계속 나아가며 절대 멈추지 않는다.

로봇은 집에서 얼마나 멀리 가게 되는지 궁금하다. 로봇이 여정 동안 방문하는 모든 점의 집합을 생각하고, 그 점들에 대한 $|x| + |y|$의 최댓값을 구하라. 만약 로봇이 $|x| + |y|$가 임의로 커지는 점들을 방문한다면, 답은 Infinity이다.

입력

첫째 줄에 정수 $n$ ($1 \le n \le 100$)이 주어진다.

다음 $n$개의 줄에는 각 함수에 대한 설명이 주어진다. 그중 $i$번째 줄은 함수 $f_i$의 명령 개수인 정수 $c_i$ ($1 \le c_i \le 100$)로 시작하고, 이어서 $c_i$개의 명령이 주어진다. 각 명령은 GO, LEFT, RIGHT, 또는 F$k$ ($1 \le k \le n$) 중 하나이며, 토큰들은 하나의 공백으로 구분된다.

출력

로봇이 여정 동안 방문하는 모든 점에 대한 $|x| + |y|$의 최댓값을 한 줄에 출력한다. 만약 로봇이 $|x| + |y|$가 임의로 커지는 점들에 도달한다면, 대신 Infinity를 출력한다.