두 번째 문자열을 비어 있지 않은 세 조각으로 자른 뒤 순서를 바꿔 이어 붙여 첫 번째 문자열을 만들 수 있는지 판정하고, 첫 조각이 가장 짧은 답을 출력한다.
문자열 두 개가 주어진다. 두 번째 문자열을 비어 있지 않은 세 조각으로 자른 뒤 세 조각을 원하는 순서로 이어 붙여서 첫 번째 문자열을 만들 수 있는지 판정한다.
각 조각은 두 번째 문자열에서 연속한 부분이고, 이어 붙일 때는 세 조각을 어떤 순서로도 놓을 수 있다.
첫째 줄에 첫 번째 문자열, 둘째 줄에 두 번째 문자열이 주어진다.
두 문자열은 비어 있지 않고, 길이가 서로 같으며, 알파벳 소문자로만 이루어져 있다. 길이는 5 0005\,0005000 이하이다. 각 알파벳이 나오는 횟수는 두 문자열에서 같다.
첫 번째 문자열을 만들 수 있으면 첫째 줄에 YES를 출력하고, 다음 세 줄에 세 조각을 첫 번째 문자열이 되는 순서대로 한 줄에 하나씩 출력한다. 세 조각은 모두 비어 있지 않아야 한다. 만들 수 없으면 첫째 줄에 NO만 출력한다.
자르는 방법이 여러 가지면 첫 번째 조각이 가장 짧은 방법을 출력한다. 그런 방법이 여럿이면 그중에서 두 번째 조각이 가장 짧은 방법을 출력한다.