import sys
def solve(h, w): grid = [[False for _ in range(w)] for _ in range(h)]
class Robot:
def __init__(self, grid):
self.grid = grid
self.x = 0 # column, 0 is leftmost
self.y = 0 # row, 0 is bottom
self.grid[self.y][self.x] = True # starting cell painted
def paint(self):
self.grid[self.y][self.x] = True
def move_right(self):
if self.x < len(self.grid[0]) - 1:
self.x += 1
def move_left(self):
if self.x > 0:
self.x -= 1
def move_up(self):
if self.y < len(self.grid) - 1:
self.y += 1
def move_down(self):
if self.y > 0:
self.y -= 1
def move_to_leftmost(self, y_target):
while self.y < y_target:
self.move_up()
while self.y > y_target:
self.move_down()
while self.x > 0:
self.move_left()
# now at (0, y_target)
def paint_row(self):
self.x = 0
self.paint()
while self.x < len(self.grid[0]) - 1:
self.move_right()
self.paint()
robot = Robot(grid)
for row in range(h):
robot.move_to_leftmost(row)
robot.paint_row()
return grid
def print_grid(grid): # Print from top row to bottom for readability for row in reversed(grid): print(''.join('#' if cell else '.' for cell in row))
def main(): data = sys.stdin.read().strip().split() if len(data) >= 2: h = int(data[1]) w = int(data[0]) else: h, w = 4, 5 # default grid = solve(h, w) print_grid(grid)
if name == "main": main()