问题
给定了 n 张卡片,上面写着从 1 到 n 的编号。首先,按顺序将编号为 1 的卡片放在最上面,接下来是编号为 2 的卡片,依此类推,直到编号为 n 的卡片,形成一堆卡片。

对于这堆卡片,可以通过进行名为 "洗牌 (x,y)" 的操作来重排卡片(其中 x 和 y 是满足 1≤x<y<n 的整数)。
洗牌 (x,y)
将 n 张卡片分成三堆:从最上面到第 x 张卡片为一堆 A,从第 x+1 张到第 y 张卡片为一堆 B,从第 y+1 张到最后一张卡片为一堆 C。然后,将堆 B 放在堆 A 的上面,再把堆 C 放在堆 B 的上面。
例如,对于按顺序排列的 9 张卡片,执行 "洗牌 (3,5)" 操作后,卡片上的编号变为 6,7,8,9,4,5,1,2,3。

现在我们需要编写一个程序,在经过 m 次洗牌操作 "洗牌 (x1,y1)"、"洗牌 (x2,y2)"、...、"洗牌 (xm,ym)" 之后的卡片堆中,从上往下数第 p 张到第 q 张卡片中,编号不超过 r 的卡片有多少张。
输入
输入由 m+3 行组成。第一行为卡片的数量 n (3≤n≤1,000,000,000=109)。第二行为洗牌次数 m (1≤m≤5000)。第三行为整数 p,q,r (1≤p≤q≤n,1≤r≤n)。接下来的 m 行 (1≤i≤m) 每行包含两个整数 xi,yi (1≤xi<yi<n),以空格分隔。
输出
对于经过 m 次洗牌操作后的卡片堆,从上往下数第 p 张到第 q 张卡片中,编号不超过 r 的卡片的数量。
输入示例1
9
1
3 7 4
3 5
输出示例1
2
对于输入示例1中的卡片堆,执行 "洗牌 (3,5)" 操作后,卡片变为 6,7,8,9,4,5,1,2,3。从上往下数第 3 张到第 7 张中,编号不超过 4 的卡片有 2 张,即编号为 4 和 1。
输入示例2
12
3
3 8 5
3 8
2 5
6 10
输出示例2
3
对于输入示例2中的卡片堆,依次执行 "洗牌 (3,8)"、"洗牌 (2,5)" 和 "洗牌 (6,10)" 操作后,卡片变为 9,10,3,11,12,4,5,6,7,8,1,2。从上往下数第 3 张到第 8 张中,编号不超过 5 的卡片有 3 张。