하나후다 셔플

시간 제한1초메모리 제한128 MB

요약
카드 1번부터 n번까지 아래에서 위로 놓여 있고, 각 절단은 p번째부터 c장을 위로 옮긴다. 모든 절단 후 맨 위 카드 번호를 출력한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 구현, 배열
정답자
아직 제출이 없습니다

문제

카드 한 벌을 섞는 방법은 여러 가지가 있다. 일본의 카드 게임 '하나후다(花札)'에서 쓰이는 하나후다 셔플도 그중 하나이며, 방법은 다음과 같다.

nn장의 카드로 이루어진 덱이 있다. 한 번의 컷 연산은, 위에서부터 pp번째 카드를 시작으로 하는 연속한 cc장을 통째로 덱에서 빼내어, 그 묶음의 내부 순서를 그대로 유지한 채 덱의 맨 위에 올려놓는 것이다. 셔플은 이러한 컷 연산을 주어진 순서대로 여러 번 수행한다.

하나후다 셔플을 시뮬레이션하여, 마지막에 덱의 맨 위에 놓이는 카드가 무엇인지 구하는 프로그램을 작성하라.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합은 두 양의 정수 nn과 rr(1≤n≤501 \le n \le 50, 1≤r≤501 \le r \le 50)이 적힌 줄로 시작한다. nn은 덱에 있는 카드 수, rr은 컷 연산의 횟수이다.

이어지는 rr개의 줄은 각각 하나의 컷 연산을 나타내며, 적힌 순서대로 수행된다. 각 줄에는 p+c≤n+1p + c \le n + 1을 만족하는 두 양의 정수 pp와 cc가 주어진다. 위에서부터 pp번째 카드를 시작으로 cc장을 빼내어 맨 위에 올린다.

입력의 끝은 두 개의 00이 적힌 줄로 표시된다. 모든 입력 줄은 공백 하나로 구분된 정확히 두 개의 정수만을 포함하며, 다른 문자는 없다.

출력

각 데이터 집합에 대해, 셔플이 끝난 뒤 맨 위 카드의 번호를 한 줄에 하나씩 출력한다. 처음에 카드는 덱의 맨 아래에서 맨 위 방향으로 11부터 nn까지 번호가 매겨져 있다. 앞뒤 공백과 같은 불필요한 문자는 출력하지 않는다.

예제1

  1. 예제 1

    입력
    5 2
    3 1
    3 1
    10 3
    1 10
    10 1
    8 3
    0 0
    
    예상 출력
    4
    4