카드

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

문제

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

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

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

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

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

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

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

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

입력

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

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

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

출력

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