플로터
시간 제한5초메모리 제한128 MB
재귀적으로 정의된 n차 바이트곡선에서 m개의 정수 점 각각을 펜이 몇 초에 몇 번 지나는지 구한다.
문제
새로 산 플로터를 시험해 보려고 바이트아사르는 몇 개의 바이트커브를 그려 보기로 했다.
차 바이트커브는 길이가 각각 인 선분 개로 이루어진다. 첫 번째 선분은 점 과 을 잇는다. 차 바이트커브는 두 글자 로 이루어진 길이 의 단어 으로 표현된다. 이 단어의 번째 글자는, 번째 선분을 그린 직후 펜이 회전하여 다음 선분을 그리기 전에 왼쪽() 또는 오른쪽()으로 직각으로 방향을 바꾼다는 뜻이다.
은 글자 하나(왼쪽으로 한 번 회전)이고, (왼쪽 두 번 뒤 오른쪽 한 번)이다. 일반적으로 은 로부터 다음과 같이 만든다. 의 글자들을 한 칸씩 띄어 쓰고 맨 앞과 맨 뒤에도 빈칸을 하나씩 더 둔 다음, 새로 생긴 빈칸들을 왼쪽부터 순서로 부터 번갈아 채운다. 예를 들어,
같은 방식으로 이다(아래 그림 참고).

선분 하나를 그리는 데 정확히 초가 걸리고, 펜은 시각 에 에서 출발한다. 플로터가 그리는 동안 바이트아사르는 궁금해한다. 주어진 점 에 펜이 놓이는 시각은 언제인가? 예를 들어 위의 차 바이트커브에서 펜은 초 후와 다시 초 후에 에 놓인다. 바이트아사르의 질문에 답하라.
입력
첫 줄에 두 정수 과 ()이 주어진다. 곡선은 이고 질의할 점은 개다. 이어지는 개의 각 줄에는 두 정수 와 (), 곧 번째 질의 점의 좌표가 주어진다. 질의 점이 곡선 위에 있지 않을 수도 있으며, 같은 점이 입력에 두 번 나타나지 않는다.
출력
질의 순서대로 개의 줄을 출력한다. 번째 질의에 대해, 차 곡선을 그리는 동안 펜이 에 놓이는 횟수인 음이 아닌 정수 (시각 의 시작 위치도 한 번의 방문으로 센다)를 먼저 출력하고, 이어서 그 개의 방문 시각을 그리기 시작한 뒤 초 단위로 오름차순으로 출력한다. 한 줄의 모든 수는 공백 하나로 구분하며, 줄의 앞뒤에는 공백이 없어야 한다.
힌트
이 문제가 재미있었다면, 같은 질문을 더 빡빡한 제약에서 다루는 더 어려운 변형을 풀어 보라.