리트

아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

리트(leet)는 알파벳을 비슷하게 생긴 다른 기호로 바꿔 적는 표기법으로, 주로 인터넷에서 쓰인다. 각 영어 알파벳은 하나 이상의 문자로 바꿔 적는다. 예를 들어 A를 4, E를 3, T를 7로 바꾸면 "ATE"는 "437"로 적을 수 있다. M을 |V|처럼, 한 알파벳을 길이가 2 이상인 문자열로 바꿀 수도 있다.

한 알파벳을 리트로 바꾸는 방법은 여러 가지일 수 있어(예: D는 [), |), |> 등으로 표현할 수 있다) 리트는 읽기 어렵다.

알파벳 소문자로 적힌 원래 단어와 리트로 적은 단어가 주어질 때, 두 단어가 다음 규칙을 모두 만족하며 서로 대응되는지 판별하는 프로그램을 작성하시오.

  1. 각 알파벳을 리트로 바꿀 때 대응되는 문자열의 길이는 최대 kk이다(kk는 입력으로 주어진다). 즉 길이는 1 이상 kk 이하이다.
  2. 한 알파벳에 대응되는 리트 문자열은 정확히 하나뿐이다. 따라서 원래 단어에 같은 알파벳이 여러 번 나오면 모두 같은 문자열로 바뀌어야 한다. 예를 들어 D를 [)로 정했다면 같은 판별에서 D를 |>로 쓸 수 없다.
  3. 서로 다른 두 알파벳이 같은 리트 문자열로 바뀔 수도 있다. 예를 들어 D와 P가 모두 |>가 되어도 된다.
  4. 알파벳과 그 리트 문자열이 시각적으로 비슷할 필요는 없다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 세 줄로 이루어진다.

  • 첫째 줄: 한 알파벳이 바뀔 수 있는 리트 문자열의 최대 길이 kk (1k31 \le k \le 3).
  • 둘째 줄: 원래 단어. 알파벳 소문자 a-z로만 이루어지며 길이는 1 이상 15 이하이다.
  • 셋째 줄: 리트로 적은 단어. 길이는 1 이상이며 a-z, A-Z, 0-9와 기호 @ \ / - = ^ | [ ] ( ) { } < > 로 이루어진다.

출력

각 테스트 케이스마다, 원래 단어를 규칙에 맞게 리트 단어로 만들 수 있으면 1을, 없으면 0을 한 줄에 출력한다.