아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

머리 아픈 암산은 이제 그만!

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

요약
N과 M개의 정수가 주어질 때, 1부터 N까지의 정수 중 입력에 나온 값을 제외한 나머지의 곱을 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 5점

유형
수학, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

암산의 달인 동호는 친구들에게 양의 정수 몇 개를 불러달라고 해 암산으로 그 수들의 곱을 구하는 놀이를 매우 좋아한다.

친구들이 수를 부르는 속도는 매우 느리기 때문에 동호는 친구들이 부른 모든 양의 정수를 곱하는 것이 아닌, 친구들이 부르지 않은 1 이상 N 이하의 모든 정수들의 곱을 구하기로 했다.

친구들은 동호의 계산을 최대한 어렵게 만들기 위해 큰 정수들을 부르기 시작했고, 이에 동호도 컴퓨터를 이용하여 수들을 곱하기로 했다. 동호를 도와 친구들이 부르지 않은 1 이상 N 이하의 모든 정수들의 곱을 구해보자!

입력

첫째 줄에는 친구들이 정한 정수 N과 친구들이 부른 수들의 개수 M이 공백을 사이에 두고 주어진다.

둘째 줄부터 1+M번째 줄까지는 한 줄에 하나씩 친구들이 부른 정수인 k1 , k2, ..., kM이 주어진다.

출력

첫째 줄에 친구들이 부르지 않은 모든 정수들의 곱을 109+7로 나눈 나머지를 출력한다.

제한

  • 1 ≤ ki ≤ N ≤ 109
  • 0 ≤ M ≤ 106
  • M < N
  • 친구들이 부르지 않은 1 이상 N 이하의 정수는 적어도 한 개 존재한다.
  • ki 는 중복될 수 있다.

예제2

  1. 예제 1

    입력
    10 8
    1
    4
    5
    7
    8
    2
    2
    4
    
    예상 출력
    1620
    
  2. 예제 2

    입력
    1000000000 0
    
    예상 출력
    698611116