단어 십자는 두 단어를 짝지어 첫 단어는 가로로, 둘째 단어는 세로로 찍고 글자 하나를 공유하게 만든 모양이다. 앞선 단어 십자는 공통 글자가 두 단어의 앞쪽에 최대한 가깝게 오도록 고른 것, 즉 두 단어에서 공통 글자가 놓인 위치의 합이 가장 작은 것이다. 위치는 1부터 센다. 합이 가장 작은 후보가 여럿이면 첫 단어에서 공통 글자의 위치가 더 앞인 쪽을 고른다.
MATCHES와 CHEESECAKE는 A (2+8=10), C (4+1=5), H (5+2=7), E (6+3=9), S (7+5=12)에서 교차할 수 있다. 합의 최솟값이 5이므로 C에서 교차시킨다.
이중 앞선 단어 십자는 단어 네 개를 두 짝으로 나누어, 두 가로 단어가 같은 줄에 오고 각 짝이 각각 앞선 단어 십자를 이루도록 배치한 모양이다.
단어 네 개(두 짝)를 읽어 짝마다 따로 교차시킨 이중 앞선 단어 십자를 만들어라.
입력은 여러 줄로 이루어진다. 각 줄에는 공백으로 구분된 단어 네 개(두 짝)가 있고, 마지막 줄에는 # 한 글자만 있다. 단어는 대문자 1개 이상 10개 이하로 이루어진다.
위에서 정의한 이중 앞선 단어 십자를 입력 순서대로 출력한다. 두 가로 단어 사이에는 공백을 정확히 세 칸 둔다. 두 십자를 모두 만들 수 없으면 Unable to make two crosses를 출력한다. 줄 끝에는 공백을 남기지 않는다. 출력 묶음 사이에는 빈 줄을 하나 둔다.