늑대
시간 제한2초메모리 제한512 MB
각 구간마다 최소 한 마리의 늑대가 있어야 한다는 조건을 만족하도록 N개 구역에서 늑대 위치를 고르는 경우의 수를 1,000,000,007로 나눈 나머지로 구한다.
문제
영선이가 서 있는 길에는 늑대가 나타난다. 그래서 영선이는 늑대가 어디에 있을지 매우 조심스럽게 따져 보고 있다.
도로는 개의 구역으로 나뉘고, 각 구역에는 번부터 번까지 번호가 붙어 있다. 한 구역에 있을 수 있는 늑대는 최대 한 마리다.
영선이는 늑대에 관한 정보를 개 알고 있다. 각 정보는 구간 하나로 이루어지고, 그 구간에 속한 구역 중 적어도 한 곳에 늑대가 있다는 뜻이다.
개의 정보를 모두 만족하는 늑대 배치가 몇 가지인지 세는 프로그램을 작성하시오. 두 배치는 늑대가 있는 구역의 집합이 다를 때 서로 다른 배치다.
입력
첫째 줄에 구역의 개수 과 정보의 개수 이 주어진다. ()
둘째 줄부터 개의 줄에 정보가 한 줄에 하나씩 주어진다. 각 줄에는 구간의 왼쪽 끝 구역 번호 과 오른쪽 끝 구역 번호 이 주어진다. () 구간은 양 끝 구역을 포함한다. 같은 구간이 여러 번 주어질 수도 있다.
출력
첫째 줄에 가능한 배치의 수를 1,000,000,007로 나눈 나머지를 출력한다.