초등학교식 곱셈

시간 제한1초메모리 제한128 MB

문제

교육용 소프트웨어 회사 All Computer Math(ACM)에는 정수의 곱셈을 다루는 단원이 있습니다. 이 회사는 각 계산을 전통적인 초등학교 필산 형식으로 보여 주려고 합니다. 예를 들어 432 × 5678의 계산은 다음과 같이 표시됩니다.

    432
   5678
-------
   3456
  3024
 2592
2160
-------
2452896

최종 곱은 앞쪽에 공백 없이 출력하지만, 자릿수를 맞추기 위해 다른 줄들에는 앞쪽 공백이 필요할 수 있습니다. 다만 우리 지역 규칙에 따라 어떤 줄에도 뒤쪽(오른쪽) 공백이 있어서는 안 됩니다. 대시(-)로 이루어진 줄의 길이는 최종 곱의 길이와 같습니다.

특수한 경우로, 둘째 피연산자의 어떤 자리가 0이면 부분 계산에 0 하나만 만들어지고, 그다음 부분 곱은 아래 새 줄이 아니라 같은 줄에 이어서 놓입니다. 예를 들어 200001 × 90040을 살펴봅시다.

     200001
      90040
-----------
    8000040
180000900
-----------
18008090040

둘째 피연산자의 가장 오른쪽 자리가 0이므로 첫 번째 부분 곱의 가장 오른쪽 칸에 0이 놓입니다. 이때 새 줄로 넘어가지 않고, 4 × 200001의 부분 곱을 그 0과 같은 줄에 이어서 씁니다. 둘째 피연산자의 아래에서 셋째·넷째 자리도 0이어서 각각 0을 만들며, 이 0들은 9 × 200001의 결과와 같은 줄에 놓입니다.

마지막 특수한 경우로, 부분 계산이 한 줄뿐이면 그것이 곧 완성된 답이므로 합을 따로 구할 필요가 없습니다. 예를 들어 246 × 70은 다음과 같이 표시됩니다.

  246
   70
-----
17220

여러분의 과제는 이러한 풀이 표시를 생성하는 것입니다.

입력

입력은 하나 이상의 데이터 집합으로 이루어집니다. 각 데이터 집합은 한 줄에 두 양의 정수가 주어지며, 정해진 순서대로(첫째 피연산자, 둘째 피연산자) 나열됩니다. 두 수 모두 6자리를 넘지 않으며, 앞자리에 0이 붙지 않습니다. 마지막 데이터 집합 다음에는 0 0만 있는 줄이 오며, 이는 입력의 끝을 나타냅니다.

출력

각 데이터 집합에 대해, 먼저 데이터 집합의 번호 N(1부터 시작)을 담은 Problem N 라벨 줄을 출력하고, 이어서 위의 형식 규칙에 따라 완성된 곱셈 전체를 출력합니다.

주의: 곱은 최대 12자리까지 될 수 있어 32비트 정수에 담기지 않습니다. 64비트 정수 자료형(예: Java의 long, C++의 long long)을 사용하세요.