Page not loading? Try clicking here.
Placeholder

#8422

Lazy Sort 1s 1024MB

Problems

Farmer John has N cows (2 ≤ N ≤ 5⋅10^6) and is attempting to get them to sort a non-negative integer array A of length N by relying on their laziness. He has a lot of heavy boxes so he lines the cows up one behind another, where cow i+1 is behind cow i, and gives ai boxes to cow i (0 ≤ ai).

Cows are inherently lazy so they always look to pass their work off to someone else. From cow 1 to N-1 in order, each cow looks to the cow behind them. If cow i has strictly more boxes than cow i+1, cow i thinks this is "unfair" and gives one of its boxes to cow i+1. This process repeats until every cow is satisfied.

Farmer John will then note the number of boxes bi that each cow i is holding and create an array B out of these values. If B = sorted(A), then Farmer John will be happy. Unfortunately, Farmer John forgot all but Q values (2 ≤ Q ≤ min(N, 100)) in A. Luckily, those values include the number of boxes he was going to give to the first and last cow. Each value that FJ remembers is given in the form ci vi representing that aci = vi (1 ≤ ci ≤ N, 1 ≤ vi ≤ 10^9). Determine the number of different ways the missing values can be filled in so that he will be happy mod 10^9+7.


Input

The first line contains two space-separated integers N and Q representing the number of cows and queries respectively. The next Q lines contain two space-separated integers ci vi representing that cow ci initially holds vi boxes. It is guaranteed that c1 = 1, cQ = N, and ci < ci+1 (the order of the cows is strictly increasing).


Output

Print the number of different ways modulo 10^9+7 that values ai can be assigned such that Farmer John will be happy after the cows perform the lazy sort. It is guaranteed that there will be at least one valid assignment.


Example #1

3 2
1 3
3 2
2

Example #2

6 3
1 1
3 3
6 5
89

In this example, FJ remembers the values at the ends of the array. The arrays [3,2,2] and [3,3,2] are the valid arrays that will make FJ happy at the end of the lazy sorting.


Source

USACO 2025 US Open Platinum

You must sign in to write code.