시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
미르코는 오랜 친구 슬라브코에게 긴 이메일을 씁니다. 손가락이 둔한 탓에, 키 하나를 누르려고 할 때 실수로 다른 키를 몇 개 더 누르곤 합니다. 그가 입력하려는 각 키에 대해 실제로 입력되는 키들은 '의도한 키 하나'와 '실수로 눌린 키 0개 이상'으로 이루어집니다. 실수로 눌린 키는 임의의 영문 소문자일 수 있으며(의도한 키와 같을 수도 있습니다), 하나의 의도한 키에 대해 실제로 입력되는 키의 총 개수는 최대 3개입니다.
메시지를 읽을 수 있게 하려고, 미르코는 이제 모든 이메일을 세 번씩 보냅니다. 보낼 때마다 실수로 눌리는 키가 달라지므로, 슬라브코는 같은 원본 메시지를 서로 다르게 보이는 세 가지 버전으로 받게 됩니다.
받은 세 버전이 주어질 때, 미르코가 원래 입력했을 수 있는 가장 긴 텍스트를 복원하도록 도와주세요.
의도한 키는 그 키에 대해 실제로 입력된 키들 안에 항상 포함되므로, 원본 메시지는 받은 각 버전 안에서 항상 부분 수열(문자들이 순서대로 나타나지만 반드시 연속적일 필요는 없는 수열)로 나타납니다. 따라서 슬라브코는 받은 세 줄 모두의 부분 수열이 되는 가장 긴 문자열을 찾습니다. 이 최대 길이를 갖는 문자열이 여러 개일 수 있으므로, 확정적인 답을 위해 그중 사전순으로 가장 앞서는(가장 작은) 문자열을 출력합니다.
입력은 세 줄로 이루어집니다. 각 줄은 미르코 메시지의 한 버전이며, 영문 소문자(a-z)로만 이루어져 있습니다. 각 줄의 길이는 1 이상 100 이하입니다.
세 입력 줄 모두의 부분 수열이 되는 가장 긴 문자열을 한 줄에 출력합니다. 그러한 문자열이 여러 개라면 사전순으로 가장 작은 것을 출력합니다.