새로 산 플로터를 시험해 보려고 바이트아사르는 몇 개의 바이트커브를 그려 보기로 했다.
n차 바이트커브는 길이가 각각 2인 선분 2n개로 이루어진다. 첫 번째 선분은 점 (0,0)과 (1,1)을 잇는다. n차 바이트커브는 두 글자 {L,R}로 이루어진 길이 2n−1의 단어 Ln으로 표현된다. 이 단어의 i번째 글자는, i번째 선분을 그린 직후 펜이 90° 회전하여 다음 선분을 그리기 전에 왼쪽(L) 또는 오른쪽(R)으로 직각으로 방향을 바꾼다는 뜻이다.
L1은 글자 L 하나(왼쪽으로 한 번 회전)이고, L2=LLR(왼쪽 두 번 뒤 오른쪽 한 번)이다. 일반적으로 Ln은 Ln−1로부터 다음과 같이 만든다. Ln−1의 글자들을 한 칸씩 띄어 쓰고 맨 앞과 맨 뒤에도 빈칸을 하나씩 더 둔 다음, 새로 생긴 빈칸들을 왼쪽부터 L,R,L,R,… 순서로 L부터 번갈아 채운다. 예를 들어,
L2=LLR⟶_L_L_R_⟶LLRLLRR=L3,
같은 방식으로 L4=LLRLLRRLLLRRLRR이다(아래 그림 참고).

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