n, k = read_line.split.map(&.to_i) sr, sc = read_line.split.map { |v| v.to_i - 1 } tr, tc = read_line.split.map { |v| v.to_i - 1 } if sr > tr sr, tr = tr, sr sc, tc = tc, sc end d = (sr - tr).abs + (sc - tc).abs if d % 2 != k % 2 puts -1 exit end max = d + d // 2 * 2 if k > max puts -1 exit end s = Array.new(n) { Array.new(n, '.') } sr.upto(tr) do |y| {sc, tc}.min.upto({sc, tc}.max) do |x| sd = (sr - y).abs + (sc - x).abs next if sd % 2 == 0 if (sd + 1) // 2 <= (k - d) // 2 s[y][x] = '#' end end end s.each do |r| puts r.join end