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