Informatica Online Judge

  파티 초대 [1083 / 043B]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 66   Total Tried : 227


The Champion of this Problem (C++) : tlsdydaud1 - 0ms / 161byte
My Best Submission (C++) : N/A

[CCC2014S]

Background

파티를 열려고 하는데 친구들을 모두 초대할 수 있는 방의 개수가 모자라다. 그래서 다음과 같이 수학적인 기계적 방법으로 초대할 친구들을 결정하고자 한다.

친구들을 1, 2, ... , K 의 번호를 붙여 리스트를 만든 후, m 번의 단계를 수행하는데, 각 단계에서는 오름차순으로 만들어져있는 친구 리스트에서 제외할 번호를 결정하는 방법을 사용한다.

각 단계에서 r1, r2, ... , rm 의 제외 번호를 사용한다고 할 때, i단계에서는 ri의 배수(ri, 2*ri, 3*ri, ... )가 되는 순서의 위치에 남아있는 친구 번호들을 제거한다. 단, 친구 리스트의 첫 번째 번호는 1이다.

번호를 제거하는 단계들을 모두 진행한 후 남아있는 친구들의 번호를 알아보자.

Input

첫 번째 줄에는 친구의 수(K : 1<=K<=100)가 하나의 정수로 입력된다.

두 번째 줄에는 번호를 제거할 단계의 수(m : 1<=m<=10)가 하나의 정수로 입력된다.

다음부터 m개의 줄에는 i번째(i : 1<=i<=m)에 제외할 배수 번호 ri(ri : 2<=ri<=100)가 순서대로 입력된다.

Output

마지막까지 남은 친구 번호를 오름차순으로 줄을 바꿔 한 줄에 하나씩 출력한다.

IO Example

입력 예시
10
2
2
3

출력 예시
1
3
7
9

* 설명

처음에 1,2,3,4,5,6,7,8,9,10 의 친구 목록이 있고, 친구들을 제외하는 2번의 단계를 진행한다. 첫 번째 단계에서 2의 배수인 짝수 번째의 친구 번호들을 제외시키면 1,3,5,7,9 가 남고, 두 번째 단계에서는 남은 목록에서 3의 배수 번째 위치에 있는 친구들을 제외하면 1, 3, 7, 9 만 남게 된다.

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]