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 C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;

class Program
{
	static void Main(string[] args)
	{

        List<int> a = new List<int>();
        List<int> b = new List<int>();

        //long[] a = new long[n];


		//string[] s = Console.ReadLine().Split(' ');

		// int a = int.Parse(Console.ReadLine());

		
        while(true)
        {
            string[] s = Console.ReadLine().Split(' ');
            int c = int.Parse(s[0]);
            int d = int.Parse(s[1]);

            if (c == 0 && d == 0) break;

            a.Add(c);
			b.Add(d);

		}

		for (int i = 0; i < a.Count; i++)
		{
			for (int y = 0; y < a[i]; y++)
			{
				for (int x = 0; x < b[i]; x++)
				{
					if (x == 0 || y == 0 || x == b[i] - 1 || y == a[i] - 1)
					{
						Console.Write("#");
					}
					else
					{
						Console.Write(".");
					}

				}
				Console.WriteLine("");
			}
			Console.WriteLine("");
		}

		//Console.WriteLine("");


	}
}