import sys
from collections import deque
snake = deque()
def moveSnake(dir):
# TODO: 实现移动逻辑
head_x,head_y = snake[-1]
if dir==1:
new_head = (head_x,head_y+1)
elif dir==2:
new_head = (head_x,head_y-1)
elif dir==3:
new_head = (head_x-1,head_y)
else:
new_head = (head_x+1,head_y)
#检测是否与身体碰撞
for s in snake:
if new_head==s:
return True
snake.popleft()#删除尾巴
snake.append(new_head)#添加新头
return False
def eatSnake(dir):
# TODO: 实现吃果子生长逻辑
head_x,head_y = snake[-1]
if dir==1:
new_head = (head_x,head_y+1)
elif dir==2:
new_head = (head_x,head_y-1)
elif dir==3:
new_head = (head_x-1,head_y)
else:
new_head = (head_x+1,head_y)
#检测是否与身体碰撞
for s in snake:
if new_head==s:
return True
snake.append(new_head)
return False
def main():
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()