问题3720--Hyperactive Girl

3720: Hyperactive Girl

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 64 MB

题目描述

Helen is a hyperactive girl. She wants to schedule her activities so that at any moment of the day there is at least one thing she can do. She does not care if her activities overlap in time, as long as every moment of her day has an activity scheduled. Helen divided the day in a particular way. The day starts at time 0 and finishes at time M. Each moment of the day is represented by a real number between 0 and M, inclusive. Helen made a list of all possible activities, with their start and finish times. Now she must decide which subset of activities to schedule. If an activity starts at time S and finishes at time F, then we say that it covers all moments between S and F, inclusive. Helen does not want to waste any activities, so she will only choose minimal subsets of activities that cover the day to be scheduled. A subset of activities is a minimal subset that covers the day if and only if: 1. every moment of the day is covered by at least one activity of the subset; and 2. removing any of the activities from the subset would leave at least one moment of the day uncovered. Note that some moments of the day may be covered by more than one activity. Given the list of possible activities for one day, you must help Helen by determining how many distinct minimal subsets cover the day.

输入

Each test case is given using several lines. The first line contains two integers M and N, representing respectively the highest value for a moment in the day (1 <= M <= 10^9) and the number of possible activities for the day (1 <= N <= 100). Each of the next N lines describes one possible activity and contains two integers S and F, representing respectively the start and finish times of the activity (0 <= S < F <= M). The last test case is followed by a line containing two zeros.

输出

For each test case output a single line with a single integer representing the number of minimal subsets that cover the day. To make your life easier, print the remainder of dividing the solution by 10^8.

样例输入 Copy

8 7
0 3
2 5
5 8
1 3
3 6
4 6
0 2
1 1
0 1
2 1
0 1
0 0

样例输出 Copy

4
1
0

来源/分类