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

function Main(input) {
  const args = input.trim().split("\n");

  let n = args.length;
  for (let i = 0; i < n; i++) {
    let tmp = args[i].split(" ").map((x) => Number(x));
    let h = tmp[0];
    let w = tmp[1];
    if (h === 0 && w === 0) {
      break;
    }
    let s = "",
      t = "";
    for (let x = 0; x < w; x++) {
      s += "#";
      if (x !== 0 && x !== w - 1) {
        t += ".";
      } else {
        t += "#";
      }
    }
    for (let y = 0; y < h; y++) {
      if (y === 0 || y === h - 1) {
        console.log(s);
      } else {
        console.log(t);
      }
    }
    console.log();
  }
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));