조니는 수학이 싫어
시간 제한5초메모리 제한128 MB
주어진 합과 같아지도록 숫자열을 5자리 이하의 양의 정수로 나누되, 더하기 기호를 최소로 쓰고 그중 사전순으로 가장 앞선 식을 찾는다.
문제
조니는 수학 과목마다 낙제를 거듭한 끝에, 반드시 통과해야 하는 보충 과목에 등록되었다. 교수에게 잘 보이려고 그는 모든 과제를 컴퓨터로 입력한다. 어떤 과제에서는 문제마다 주어진 양의 정수들을 더해 그 식을 출력해야 했는데, 예를 들면 4+12+3=19 와 같다.
그런데 프린터 오류로 더하기 기호가 모두 사라져서 이 줄이 4123=19 처럼 인쇄되었다. 여러분이 할 일은 사라진 더하기 기호를 복원하는 것이다.
복원해야 하는 각 줄은 숫자들이 이어진 문자열, 등호, 그리고 올바른 합으로 이루어진다. 원래 수들에 대해 다음 세 가지 사실을 이용할 수 있다: 모든 수는 양의 정수였고, 합을 제외한 어떤 수도 5자리를 넘지 않았으며, 어떤 수도 맨 앞자리가 0이 아니었다.
입력
입력은 한 줄에 하나씩, 하나 이상의 식으로 이루어진다. 각 줄은 숫자열=합 형식이다. 숫자열은 더하기 기호가 제거된 뒤 남은 숫자들이고, 합은 필요한 총합이다. 어떤 줄도 256자를 넘지 않는다. 입력은 0=0 줄로 끝나며, 이 줄은 종료 표시일 뿐 처리하지 않는다.
출력
각 식에 대해 주어진 순서대로 k. result 한 줄을 출력한다. 여기서 k는 1부터 시작하는 식의 번호이고, 마침표 뒤에는 공백 하나가 오며, result는 아래와 같이 정한다.
숫자열에 더하기 기호를 넣어, 각 항이 5자리 이하이고 맨 앞자리가 0이 아닌 양의 정수가 되며 그 합이 합과 같아지도록 만든다. result는 이렇게 복원한 식 숫자열=합(더하기 기호가 들어간 형태)이다. 더하기 기호는 가능한 한 적게 사용한다. 최소 개수의 더하기 기호로 복원하는 방법이 여러 가지라면, 그중 사전순으로 가장 앞서는 식 문자열을 출력한다. + 기호는 모든 숫자보다 작다고 보므로, 이는 더하기 기호가 가능한 한 왼쪽에 놓인 복원이다. 유효한 복원이 존재하지 않으면 result 자리에 IMPOSSIBLE을 출력한다.