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