카드

면접 대비

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

요약
카드를 행과 열로 반복 재배열하는 게임에서 여러 번의 열 응답과 일치하는 후보 숫자들을 모두 찾는 문제입니다.
난이도

보통10점 중 5점

유형
시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

데이브와 할이 카드로 게임을 한다. 데이브에게는 카드가 NN장 있고, NN은 3의 배수(N=3KN = 3K)이며, 카드에는 11부터 NN까지의 번호가 적혀 있다.

각 카드의 양면에는 같은 번호가 적혀 있고, 서로 같은 번호를 가진 카드는 없으며, 카드는 처음에 번호 오름차순으로 정렬되어 있다.

먼저 할이 집합 {1,2,…,N}\{1, 2, \ldots, N\} 중에서 수 하나를 마음속으로 정한다.

그다음 데이브가 모든 카드를 앞면이 보이도록 KK개의 행과 33개의 열로 이루어진 격자에 놓는다. 배치는 행 단위로 이루어진다. 첫 번째 행에는 왼쪽에서 오른쪽으로 카드 11, 카드 22, 카드 33을 놓고, 다음 세 장으로 두 번째 행을 채우며, 이런 식으로 마지막 카드가 마지막 행을 채울 때까지 계속한다.

그러면 할은 자신이 정한 수가 적힌 카드가 지금 몇 번째 열(첫째, 둘째, 셋째)에 있는지 데이브에게 말한다.

데이브는 카드를 열 단위로 모은다. 먼저 첫째 열 전체를 위에서 아래로(행 11, 행 22, ..., 행 KK) 걷고, 이어서 둘째 열을 같은 방식으로, 마지막으로 셋째 열을 걷는다. 섞지 않고, 이렇게 모은 더미를 앞에서와 똑같이 행 단위로 다시 탁자 위에 배치한다.

이 과정을 반복한다. 데이브가 배치를 끝낼 때마다 할은 자신의 카드가 있는 열을 다시 알려 준다. 할의 모든 대답이 끝난 뒤에도 여러 수가 그가 말한 모든 내용과 여전히 일치할 수 있다.

할의 대답을 이용하여 할이 정한 수의 후보가 될 수 있는 수들의 가장 작은 집합을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 카드의 수 NN이 주어진다 (3≤N≤9993 \le N \le 999, NN은 33의 배수).

둘째 줄에 배치 횟수, 즉 할의 대답 횟수 DD가 주어진다 (1≤D≤101 \le D \le 10).

이어지는 DD개의 줄에는 각 배치에 대한 할의 대답이 순서대로 주어지며, 각 줄에는 first, second, third 중 하나의 단어가 있다.

출력

할이 정한 수의 후보가 될 수 있는 모든 수를 오름차순으로, 공백 하나로 구분하여 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6
    1
    second
    
    예상 출력
    2 5
    
  2. 예제 2

    입력
    12
    2
    third
    first
    
    예상 출력
    6
    
  3. 예제 3

    입력
    18
    2
    first
    third
    
    예상 출력
    7 16