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