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: Accepted)

import java.io.IOException;
import java.util.Scanner;
public class Main {

	public static void main(String[] args) throws Exception {
		// TODO ?????????????????????????????????????????????
		int a,b,c,d,e;
		   a=1;b=1;e=1;
	       Scanner sc = new Scanner(System.in);
	       while (a!=0 || b!=0){
	       a = sc.nextInt();
	       b = sc.nextInt();
	       c = 1;
	       d = 1;
	       if (e != 1){
	    	   System.out.println();
	       }
	       
	       while(c<=a){
	    	   
	    	   if(c==1||c==a){
	    		   
	    		   while(d<=b){
	    			   if(d!=b){
	    				   System.out.print("#");
	    			   }
	    			   else{
	    				   System.out.println("#");
	    			   }
	    		   d=d+1;
	    		   }
	    		   
	    	   }
	    	   
	    	   else{
	    		   
	    	   while(d<=b){
	    		   
	    		   if(d==1){
	    			   System.out.print("#");
	    		   }else if(d==b){
	    			   System.out.println("#");
	    		   }
	    		   else{
	    			   System.out.print(".");
	    		   }
	    		   
	    		   d = d+1;
	    	   }
	    	   
	    	   }
	    	   
	    	   c = c+1;
	    	   d = 1;
	       }
	       e=e+1;
	       }
		}

    }