Problem:
Print a Frame

Draw a frame which has a height of H cm and a width of W cm. For example, the following figure shows a frame which has a height of 6 cm and a width of 10 cm.

##########
#........#
#........#
#........#
#........#
##########

Input

The input consists of multiple datasets. Each dataset consists of two integers H and W separated by a single space.

The input ends with two 0 (when both H and W are zero).

Output

For each dataset, print the frame made of '#' and '.'.

Print a blank line after each dataset.

Constraints

3 ≤ H ≤ 300

3 ≤ W ≤ 300

Sample Input

3 4
5 6
3 3
0 0

Sample Output

####
#..#
####

######
#....#
#....#
#....#
######

###
#.#
###

Solution in JAVA (judge verdict: WA: Presentation Error)

/** 以下のような、たてH cm よこ W cm の枠を描くプログラムを作成して下さい。
##########
#........#
#........#
#........#
#........#
##########


上図は、たて 6 cm よこ 10 cm の枠を表しています。

*/

/*sucannerクラス使うためにインポート*/
import java.util.Scanner;

class Main {
	// プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		//処理を繰り返す
		while (true){
			//２つの数字を受け取る
			 int intH = sc.nextInt();
			 int intW = sc.nextInt();
			 //受け取った数字が二つとも０の場合処理を終了する
			if(intH == 0 && intW == 0){
				break;
			}

			for ( int x = 0; x <intW ; x++){
				System.out.print("#");
			}
			System.out.println();
			//受け取った縦の数字の回数改行する
			for (int i = 0; i < intH - 2 ; i++){
				//受けとった横の数字の個数分＃を表示する
				System.out.print("#");
				for ( int j = 0; j < intW - 2; j++){
					System.out.print(".");
				}
				System.out.println("#");

			}
			for ( int y = 0; y <intW ; y++){
				System.out.print("#");
			}

			//表示完了後改行する。
			System.out.println("");
		}
	}
}