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()