import sys from collections import deque snake = deque() def moveSnake(dir): # TODO: 实现移动逻辑 global snake gh=list(snake[-1]) if dir==1: gh[1]+=1 elif dir==2: gh[1]+=-1 elif dir==3: gh[0]+=-1 else: gh[0]+=1 gh=tuple(gh) snake.popleft() snake.append(gh) if len(set(snake))<len(snake): return True return False def eatSnake(dir): # TODO: 实现吃果子生长逻辑 global snake last=snake[0] gh=list(snake[-1]) if dir==1: gh[1]+=1 elif dir==2: gh[1]+=-1 elif dir==3: gh[0]+=-1 else: gh[0]+=1 gh=tuple(gh) snake.popleft() snake.append(gh) snake.appendleft(last) if len(set(snake))<len(snake): return True return False def main(): global snake data = sys.stdin.read().split() it = iter(data) n = int(next(it)) q = int(next(it)) for _ in range(n): x = int(next(it)); y = int(next(it)) snake.append((x, y)) for _ in range(q): op = int(next(it)); dir = int(next(it)) collision = moveSnake(dir) if op == 1 else eatSnake(dir) if collision: print(-1) return else: for x, y in reversed(snake): print(f"{x} {y}") if __name__ == '__main__': main()