만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

늑대

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

요약
각 구간마다 최소 한 마리의 늑대가 있어야 한다는 조건을 만족하도록 N개 구역에서 늑대 위치를 고르는 경우의 수를 1,000,000,007로 나눈 나머지로 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 구간, 누적 합
정답자
아직 제출이 없습니다

문제

영선이가 서 있는 길에는 늑대가 나타난다. 그래서 영선이는 늑대가 어디에 있을지 매우 조심스럽게 따져 보고 있다.

도로는 NN개의 구역으로 나뉘고, 각 구역에는 00번부터 N−1N-1번까지 번호가 붙어 있다. 한 구역에 있을 수 있는 늑대는 최대 한 마리다.

영선이는 늑대에 관한 정보를 MM개 알고 있다. 각 정보는 구간 하나로 이루어지고, 그 구간에 속한 구역 중 적어도 한 곳에 늑대가 있다는 뜻이다.

MM개의 정보를 모두 만족하는 늑대 배치가 몇 가지인지 세는 프로그램을 작성하시오. 두 배치는 늑대가 있는 구역의 집합이 다를 때 서로 다른 배치다.

입력

첫째 줄에 구역의 개수 NN과 정보의 개수 MM이 주어진다. (1≤N,M≤3001 \le N, M \le 300)

둘째 줄부터 MM개의 줄에 정보가 한 줄에 하나씩 주어진다. 각 줄에는 구간의 왼쪽 끝 구역 번호 LL과 오른쪽 끝 구역 번호 RR이 주어진다. (0≤L≤R≤N−10 \le L \le R \le N-1) 구간은 양 끝 구역을 포함한다. 같은 구간이 여러 번 주어질 수도 있다.

출력

첫째 줄에 가능한 배치의 수를 1,000,000,007로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    5 2
    0 2
    1 4
    
    예상 출력
    27
    
  2. 예제 2

    입력
    10 4
    0 3
    4 9
    2 5
    7 9
    
    예상 출력
    798
    
  3. 예제 3

    입력
    3 1
    1 2
    
    예상 출력
    6