거의 켤레인 단어

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

문제

엄밀히 따지면 almost(거의)라는 단어는 no(아니오)와 같은 뜻입니다. 하지만 둘이 완전한 동의어는 아닙니다. 오히려 almostno보다 yes(예)에 더 가깝습니다.

두 단어가 켤레(conjugate) 라는 것은, 첫 번째 단어의 맨 앞 글자를 맨 뒤로 옮기는 연산을 여러 번 되풀이하여 두 번째 단어를 만들 수 있다는 뜻입니다. 예를 들어 ababaabaab는 켤레이지만, abababaaab는 켤레가 아닙니다.

두 단어가 거의 켤레(almost conjugate) 라는 것은 다음 두 조건을 모두 만족한다는 뜻입니다.

  • 두 단어가 켤레가 아니고,
  • 첫 번째 단어의 맨 앞 글자를 맨 뒤로 옮기는 연산을 여러 번 되풀이하여, 두 번째 단어와 정확히 한 자리에서만 다른 단어를 만들 수 있습니다.

예를 들어 ababaaaaab는 거의 켤레이지만, abababbbbb는 거의 켤레가 아닙니다.

표준 입력에서 두 단어를 읽어, 두 단어가 거의 켤레인지 판정하고, 거의 켤레라면 그 증거가 되는 이동 횟수들을 출력하는 프로그램을 작성하세요.

입력

첫째 줄에 각 단어의 길이를 나타내는 정수 nn (1n1061 \le n \le 10^6)이 주어집니다. 둘째 줄에는 첫 번째 단어가, 셋째 줄에는 두 번째 단어가 주어집니다. 각 단어는 알파벳 소문자 nn개로 이루어진 문자열입니다.

출력

두 단어가 거의 켤레이면 첫째 줄에 TAK(폴란드어로 )를, 그렇지 않으면 NIE(폴란드어로 아니오)를 출력합니다.

첫째 줄이 TAK인 경우, 둘째 줄에는 [0,n1][0, n-1] 범위의 음이 아닌 정수를 오름차순으로, 공백 하나로 구분하여 출력합니다. 이 수열에는 첫 번째 단어의 맨 앞 글자를 맨 뒤로 옮기는 연산을 그만큼 적용했을 때 결과 단어가 두 번째 단어와 정확히 한 자리에서만 다르게 되는 모든 이동 횟수가 포함되어야 합니다.