Punched Cards

아직 제출이 없습니다시간 제한5초메모리 제한1024 MB

문제

A secret team of programmers is plotting to disrupt the programming language landscape and bring punched cards back by introducing a new language called Punched Card Python that lets people code in Python using punched cards! Like good disrupters, they are going to launch a viral campaign to promote their new language before even having the design for a prototype. For the campaign, they want to draw punched cards of different sizes in ASCII art.

The ASCII art of a punched card they want to draw is similar to an R×CR×C matrix without the top-left cell. That means, it has (RC)1(R⋅C)-1 cells in total. Each cell is drawn in ASCII art as a period (.) surrounded by dashes (-) above and below, pipes (|) to the left and right, and plus signs (+) for each corner. Adjacent cells share the common characters in the border. Periods (.) are used to align the cells in the top row.

For example, the following is a punched card with R=3R=3 rows and C=4C=4 columns:

..+-+-+-+
..|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+

There are more examples with other sizes in the samples below. Given the integers RR and CC describing the size of a punched card, print the ASCII art drawing of it as described above.

입력

The first line of the input gives the number of test cases, TT. TT lines follow, each describing a different test case with two integers RR and CC: the number of rows and columns of the punched card that must be drawn.

출력

For each test case, output one line containing Case #x:, where xx is the test case number (starting from 1). Then, output (2R)+1(2⋅R)+1 additional lines with the ASCII art drawing of a punched card with RR rows and CC columns.

힌트

Sample Case #1 is the one described in the problem statement. Sample Cases #2 and #3 are additional examples. Notice that the output for each case contains exactly RC+3R⋅C+3 periods.