vec = []

loop do
  h, w = gets.split.map(&:to_i)
  break if h.zero? && w.zero?

  vec << [h, w]
end

vec.each do |v|
  h = v[0]
  w = v[1]
  edge = '#' * w

  puts edge

  (h - 2).times do
    puts '#' + '.' * (w - 2) + '#'
  end

  puts edge
  puts ''
end

