R, K = gets.split.map(&:to_i) H, W = gets.split.map(&:to_i) C = H.times.map { gets.chomp } nc = Array.new(H * K) { Array.new(W * K, '.') } H.times do |y| W.times do |x| next if C[y][x] == '.' (K * y).upto(K * (y + 1) - 1) do |ny| (K * x).upto(K * (x + 1) - 1) do |nx| nc[ny][nx] = '#' end end end end nc = if R == 90 nc.transpose.map(&:reverse) elsif R == 180 nc.reverse.map(&:reverse) elsif R == 270 nc.transpose.reverse else nc end puts nc.map(&:join)