방마다 사용 가능 여부가 범위 단위로 뒤집힐 때, 매일 뒤집기 직후 N명의 미니언을 현재 사용 가능한 방들에 나누는 집합 분할의 수를 880803841로 나눈 나머지를 구합니다.
그루의 지하실에는 미니언 NNN마리가 살고, 각 미니언에는 111번부터 NNN번까지 번호가 붙어 있다. 지하실에는 수용 인원 제한이 없는 방이 MMM개 있고, 각 방은 사용 가능 또는 사용 불가 중 한 가지 상태다. 그루는 매일 연속한 구간에 있는 방의 상태를 모두 뒤집는다.
미니언은 사용 가능한 방에만 살 수 있다. 또 사용 가능한 방에는 미니언이 한 마리 이상 들어가야 한다. 방은 서로 구분하지 않는다. 즉 배치 AAA의 모든 방에 대해, 그 방에 있는 미니언 번호 집합과 똑같은 집합을 가진 방이 배치 BBB에도 있으면 AAA와 BBB는 같은 배치로 센다.
처음에는 모든 방이 사용 가능하다. 이어지는 DDD일 동안, 그루가 그날의 구간을 뒤집은 직후 미니언을 배치하는 방법의 수를 구하라.
첫째 줄에 테스트 케이스의 개수 TTT가 주어진다 (T≤10T \le 10T≤10).
각 테스트 케이스의 첫째 줄에 정수 NNN, MMM, DDD가 공백으로 구분되어 주어진다 (1≤M≤N≤1000001 \le M \le N \le 1000001≤M≤N≤100000, 1≤D≤1000001 \le D \le 1000001≤D≤100000).
이어지는 DDD개 줄에 정수 LLL과 RRR이 공백으로 구분되어 주어진다 (1≤L≤R≤M1 \le L \le R \le M1≤L≤R≤M). 그루는 그날 방 L,L+1,…,RL, L+1, \dots, RL,L+1,…,R의 상태를 뒤집는다.
각 질의마다 미니언을 배치하는 방법의 수를 880803841880803841880803841로 나눈 나머지를 한 줄에 하나씩 출력한다.