용의 알 돌리기

시간 제한2초메모리 제한512 MB

요약
원형으로 선 아이들 사이에서 시계 방향이나 반시계 방향으로 달걀을 던지며, 마지막 m번의 던지기를 되돌리는 명령을 처리한 뒤 달걀을 가진 아이를 구한다.
난이도

쉬움10점 중 3점

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

문제

대너리스는 초등학교 2학년 컴퓨터 과학 수업에서 쓸 놀이를 자주 만든다. 이번 주 수업에서는 아이들을 원으로 둘러서게 한 뒤 돌처럼 굳은 용의 알을 조심스럽게 던져서 주고받게 한다.

nn명의 아이는 원을 따라 시계 방향으로 00번부터 n−1n - 1번까지 번호를 매긴다. 알은 항상 00번 아이가 처음 들고 있다. 대너리스는 다음 두 가지 중 하나를 외친다.

  1. 정수 tt. 알을 지금 들고 있는 아이에서 시계 방향으로 tt칸 떨어진 아이에게 던진다. 원의 끝을 넘어가면 다시 앞으로 돌아온다. tt가 음수이면 반시계 방향으로 던진다.
  2. undo m. 바로 앞의 던지기 mm번을 되돌린다. undo 명령은 다른 undo 명령을 되돌리지 않는다. 오직 1번 형태의 던지기만 되돌린다.

예를 들어 아이가 55명이고 선생님이 8 -2 3 undo 2 네 개의 명령을 외쳤다고 하자. 알은 00번에서 33번으로, 33번에서 11번으로, 11번에서 44번으로 이동한다. 이어지는 undo 2는 마지막 두 번의 던지기를 되돌리므로 알은 44번에서 11번으로 돌아오고, 다시 11번에서 33번으로 돌아온다. 대너리스가 00을 외치면, 또는 nn이나 −n-n, 2n2n, −2n-2n처럼 nn의 배수를 외치면, 알을 든 아이가 알을 위로 던졌다가 조심스럽게 다시 받는다.

명령을 모두 정확히 수행했을 때 알이 최종적으로 누구에게 있는지 구하는 프로그램을 작성하라.

입력

첫째 줄에 아이의 수 nn과 대너리스가 외치는 명령의 개수 kk가 주어진다. (1≤n≤301 \le n \le 30, 1≤k≤1001 \le k \le 100)

둘째 줄에 명령 kk개가 순서대로 주어진다. 각 명령은 알을 시계 방향으로 몇 칸 던질지 나타내는 정수 pp (−10 000≤p≤10 000-10\,000 \le p \le 10\,000)이거나, 바로 앞의 던지기 mm번을 되돌리라는 undo m (m≥1m \ge 1)이다. undo m도 명령 하나로 세므로 두 형태를 합쳐 모두 kk개다. 대너리스는 게임 시작 지점보다 더 뒤로 되돌리게 시키지 않는다.

출력

게임이 끝났을 때 알을 들고 있는 아이의 번호를 출력한다.

예제2

  1. 예제 1

    입력
    5 4
    8 -2 3 undo 2
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5 10
    7 -3 undo 1 4 3 -9 5 undo 2 undo 1 6
    
    예상 출력
    2