암호학자 뵈르게가 회사에서 쓸 새 보안 모듈을 만든다. 지난번 모듈은 코드를 아무도 이해하지 못해 문제가 많았기 때문에, 이번에는 훨씬 단순하게 만들라는 지시를 받았다.
비밀키 c는 알파벳 대문자 26자를 대문자 26자로 보내는 일대일 대응이다. 문자열 S=s1s2…sm의 암호문은 crypt(S)=c(s1)c(s2)…c(sm)이고, 복호화 키 c−1은 c−1(c(s))=s를 만족한다.
이 방식에는 약점이 있다. 어떤 q에 대해 cryptq(crypt(S))=S가 성립하므로, 공격자는 암호문에 crypt를 계속 적용하기만 해도 원문을 얻는다. q가 작으면 위험하니 뵈르게는 먼저 q를 알아야 한다.
원문 S와 그에 대응하는 암호문 T=crypt(S)가 주어진다. q는 T에 crypt를 q번 더 적용했을 때 S가 되는 가장 작은 음이 아닌 정수다.
S와 T는 S에 등장하는 문자에서만 c의 값을 알려주고, 나머지 문자의 상은 알 수 없다. S와 T에 어긋나지 않는 키 c가 모두 같은 q를 준다면 그 값을 출력하고, 키에 따라 q가 달라진다면 mjau를 출력한다.
첫 줄에 테스트 케이스의 수 n이 주어진다 (1≤n≤100). 각 테스트 케이스는 두 줄이고, 첫 줄에 원문 S, 둘째 줄에 암호문 T가 주어진다. crypt(S)=T를 만족하는 키가 적어도 하나 존재한다. 두 문자열은 'A'부터 'Z'까지의 대문자로만 이루어지며 1≤∣S∣=∣T∣≤1000이다. 암호화 함수 c는 테스트 케이스마다 다르다.
각 테스트 케이스마다 한 줄에 q를 출력한다. S와 T만으로 q를 정할 수 없으면 mjau를 출력한다.