고대 두루마리

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

문제

마술사에게서 고대 두루마리 세 장을 샀다. 두루마리마다 긴 문자열이 하나씩 적혀 있고, 세 문자열의 길이는 모두 같다. 마술사는 이 문자열이 보물이 잠든 던전에 들어가는 열쇠 문자열을 베낀 사본이라고 했다. 다만 사람이 여러 번 손으로 옮겨 적은 탓에 문자열에는 오류가 섞여 있고 길이만 정확하다고 덧붙였다.

세 사본으로 원래 문자열을 복원하라. 복원에는 다음 두 가정을 쓴다.

  • 사본 하나에 섞인 오류는 최대 dd개다. 즉 원래 문자열과 각 사본의 해밍 거리는 dd 이하다.
  • 조건을 만족하는 문자열이 여럿이면 그중 사전순으로 가장 작은 문자열이 원래 문자열이다.

길이가 같은 두 문자열의 해밍 거리는 같은 자리의 문자가 서로 다른 자리의 개수다. 원래 문자열도 영문 대문자와 소문자로만 이루어지고, 문자열 비교는 아스키 코드 순서를 따르므로 대문자가 소문자보다 앞선다.

입력

입력은 여러 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.

l d
str1
str2
str3

첫 줄에 정수 ll (1l1000001 \le l \le 100000)과 dd (0d50000 \le d \le 5000)가 주어진다. ll은 세 문자열의 길이이고, dd는 허용하는 최대 해밍 거리다. 이어지는 세 줄에는 길이가 ll인 문자열이 한 줄에 하나씩 주어진다. 세 문자열은 영문 대문자와 소문자로만 이루어진다.

입력의 마지막 줄에는 00이 두 개 주어지며, 이 줄은 처리하지 않는다.

출력

데이터 집합마다 조건을 만족하는 문자열 중 사전순으로 가장 작은 것을 한 줄에 출력한다. 그런 문자열이 없으면 -1을 출력한다.