import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		List<Integer> rows = new ArrayList<>();
		List<Integer> columns = new ArrayList<>();
		boolean flag=true;
		
		while (true) {
			int h = s.nextInt();
			int w = s.nextInt();
			if(h==0 && w==0) {
				break;
			}
			if(h>=3 && w>=1 && h<=300 && w<=300) {
				rows.add(h);
				columns.add(w);
			}else {
				flag = false;
				break;
			}
		}
		
		if(flag == true) {
			for(int i=0;i<rows.size();i++) {
				for(int r=0;r<rows.get(i);r++) {
					for(int c=0;c<columns.get(i);c++) {
						if(r==0 || r==rows.get(i)-1) {
							System.out.print("#");
						}else {
							if(c==0 || c==columns.get(i)-1) {
								System.out.print("#");
							}else {
								System.out.print(".");
							}
						}
						
					}
					System.out.println();
				}
				System.out.println();
			}
			}

	}

}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz