编程题
### 问题描述
小齐正在进行她的牛奶学作业,需要创建一种三种不同牛奶混合物的配方。然而,正如所有优秀的奶牛所知,某些牛奶成分不能混合在一起,否则会引起爆炸。特别地,标有 $a$ 和 $b$ 的两种牛奶成分只有在 $a \oplus b \leq K$ 的情况下才能在同一混合物中出现($1 \leq K \leq 10^9$)。
这里,$a \oplus b$ 表示非负整数 $a$ 和 $b$ 的“按位异或”操作。该操作等效于在二进制中对应位相加并舍弃进位。例如,
$0 \oplus 0 = 1 \oplus 1 = 0$
$1 \oplus 0 = 0 \oplus 1 = 1$
$5 \oplus 7 = 10_2 \oplus 111_2 = 010_2 = 2$
小齐有 $N$($1 \leq N \leq 2 \times 10^4$)盒牛奶成分,第 $i$ 盒包含从 $l_i$ 到 $r_i$ 的标签($0 \leq l_i \leq r_i \leq 10^9$)。保证各个牛奶盒的成分按照其含量的递增顺序提供,即对于每个 $1 \leq i < N$,都有 $r_i < l_{i+1}$。
小齐想知道她可以创建多少种不同的三种不同牛奶混合物。如果两个混合物至少有一种牛奶成分不同,则它们被认为是不同的。由于答案可能非常大,要对 $10^9+7$ 取模。
### 输入格式
第一行包含两个整数 $N$ 和 $K$。
接下来的 $N$ 行,每行包含两个用空格分隔的整数 $l_i$ 和 $r_i$。保证提供的牛奶成分盒按照其内容的递增顺序。
### 输出格式
输出小齐可以创建的三种不同牛奶混合物的数量,对 $10^9+7$ 取模。
### 样例输入
```
1 13
0 199
```
### 样例输出
```
4280
```
### 评测数据规模
$1 \leq max(K, r_N) \leq 10^6$。