지오캐싱(보물찾기) 게임에서는 보물의 좌표를 때때로 수식 형태로 제공하는데, 이때 일부 숫자가 문자로 치환되어 있습니다. 예를 들어 N58 24.1ab E26 44.3c 와 같습니다.
주어진 수식과 변수들이 가질 수 있는 값에 대응하는 모든 좌표를 출력하는 프로그램을 작성하세요.
첫째 줄에는 수식이 주어집니다. 수식은 위도 표현과 경도 표현으로 이루어지며, 각 표현은 방위 문자(N, S, E, W)와 도·분·분의 소수부 값으로 구성됩니다. 수식의 길이는 25자를 넘지 않습니다.
둘째 줄에는 변수의 개수 $N$ ($1 \le N \le 3$)이 주어지고, 이어지는 $N$개의 줄에는 각각 변수 하나의 정의가 주어집니다. 각 정의는 변수 이름, 등호(=), 그리고 쉼표로 구분된 목록으로 이루어집니다. 목록의 각 원소는 단일 값이거나 값의 범위입니다. 범위는 아래끝..위끝 형식으로 쓰며 양 끝을 포함합니다(예: 2..4 는 2, 3, 4). 변수 이름은 항상 하나의 소문자 라틴 문자입니다. 값과 범위의 끝점은 한 자리 또는 두 자리 정수일 수 있습니다. 어떤 변수의 정의도 중복된 값을 만들지 않는다고 가정할 수 있습니다.
수식 안에 나타나는 각 변수 문자는 선택된 값의 십진 표기로 그대로 치환됩니다. 따라서 두 자리 값은 두 글자를 삽입합니다.
변수들을 허용된 값으로 치환하여 얻을 수 있는 모든 좌표를 각각 한 줄에 출력합니다.
채점은 출력을 정확히 문자 단위로 비교하므로, 좌표는 다음의 확정된 순서로 출력해야 합니다. 입력에 등장한 순서대로 변수를 $v_1, v_2, \ldots, v_N$ 이라 할 때, 첫 번째 변수 $v_1$ 이 가장 빠르게(줄마다) 바뀌고 마지막 변수 $v_N$ 이 가장 느리게 바뀌도록 모든 조합을 나열합니다. 즉 $v_N$ 을 가장 바깥쪽 반복문, $v_1$ 을 가장 안쪽 반복문으로 두고 순회합니다. 한 변수 안에서는 나열된 순서대로(각 범위는 아래끝에서 위끝까지 오름차순으로 전개하여) 값을 취합니다.