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