Help!

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

문제

MegaFirm Inc.는 전화 상담원이 고객에게 응대하는 것을 돕기 위해 여러 개의 패턴(pattern)을 만들었습니다. 패턴은 단어자리표시자로 이루어진 구(phrase)입니다. 단어는 알파벳 소문자로만 이루어진 문자열이고, 자리표시자는 단어를 꺾쇠괄호로 감싼 것(즉 < ... >)입니다.

어떤 구가 패턴과 일치한다는 것은, 패턴 안의 각 자리표시자를 하나의 단어로 일관되게 치환하여 패턴과 구를 똑같이 만들 수 있다는 뜻입니다. 여기서 "일관되게"란, 같은 이름을 가진 자리표시자는 모두 같은 단어로 치환해야 한다는 의미입니다. (이름이 서로 다른 자리표시자가 같은 단어로 치환되는 것은 허용됩니다.)

예를 들어, 구

to be or not to be

는 패턴

<foo> be <bar> not <foo> <baf>

과 일치합니다. <foo>를 to로, <bar>를 or로, <baf>를 be로 치환하면 두 문장이 같아지기 때문입니다.

두 개의 패턴이 주어질 때, 두 패턴 모두와 일치하는 구를 하나 찾으세요.

입력

입력의 첫 줄에는 테스트 케이스의 수 n이 주어집니다. 각 테스트 케이스는 두 줄로 이루어지며, 각 줄이 하나의 패턴입니다. 패턴은 소문자 단어와, 소문자 단어를 담은 자리표시자로 구성됩니다. 어떤 패턴도 100자를 넘지 않습니다. 단어의 길이는 최대 16자입니다. 인접한 단어와 자리표시자는 하나의 공백으로 구분됩니다.

출력

각 테스트 케이스마다, 두 패턴 모두와 일치하는 구를 한 줄에 출력합니다. 일치하는 구가 여러 개일 수 있으므로 사전순으로 가장 작은 구를 출력하세요. 이는 어떤 리터럴 단어로도 값이 강제되지 않는(자유로운) 자리표시자를 모두 한 글자 a로 치환한 구와 같습니다. 두 패턴을 모두 만족하는 구가 존재하지 않으면, 빼기 기호 하나(-)만 있는 줄을 출력합니다.