마술사에게서 고대 두루마리 세 장을 샀다. 두루마리마다 긴 문자열이 하나씩 적혀 있고, 세 문자열의 길이는 모두 같다. 마술사는 이 문자열이 보물이 잠든 던전에 들어가는 열쇠 문자열을 베낀 사본이라고 했다. 다만 사람이 여러 번 손으로 옮겨 적은 탓에 문자열에는 오류가 섞여 있고 길이만 정확하다고 덧붙였다.
세 사본으로 원래 문자열을 복원하라. 복원에는 다음 두 가정을 쓴다.
길이가 같은 두 문자열의 해밍 거리는 같은 자리의 문자가 서로 다른 자리의 개수다. 원래 문자열도 영문 대문자와 소문자로만 이루어지고, 문자열 비교는 아스키 코드 순서를 따르므로 대문자가 소문자보다 앞선다.
입력은 여러 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.
l d
str1
str2
str3
첫 줄에 정수 l (1≤l≤100000)과 d (0≤d≤5000)가 주어진다. l은 세 문자열의 길이이고, d는 허용하는 최대 해밍 거리다. 이어지는 세 줄에는 길이가 l인 문자열이 한 줄에 하나씩 주어진다. 세 문자열은 영문 대문자와 소문자로만 이루어진다.
입력의 마지막 줄에는 0이 두 개 주어지며, 이 줄은 처리하지 않는다.
데이터 집합마다 조건을 만족하는 문자열 중 사전순으로 가장 작은 것을 한 줄에 출력한다. 그런 문자열이 없으면 -1을 출력한다.