编程题
### 问题描述
小橙子为了庆祝生日,买了 $n$ 种不同尺寸的的矩形蛋糕(可以认为每种蛋糕有无限个,因为小橙子很 rich),第 $i$ 种蛋糕的长为 $a_i$,宽为 $b_i$,一块蛋糕在旋转之后其长和宽将会变为 $b_i,a_i$。小橙子热衷于将一些蛋糕摆放在一条线上(她可以选择旋转蛋糕),并得到以下特殊的“橙线”。
- 橙线上任意相邻两块蛋糕不能是同一种形状。
- 从第二块蛋糕开始,每一块蛋糕的长度必须等于前一块蛋糕的宽度(第一块蛋糕没有限制)。
请你计算对于长度为 $len$ 的“橙线”,小橙子有多少种不同的摆放方案。因为方案数可能很大,请对 $10^9 + 7$ 取模。
两个方案被认为是相同的,当且仅当蛋糕的类型顺序和旋转情况完全一致(正方形的蛋糕无论如何旋转都认为其是同一种情况)。
Tips:同一种蛋糕可以无限次使用。
### 输入格式
第一行两个整数 $n,len$,表示蛋糕种类的数量,橙线的长度。
接下来 $n$ 行,第 $i$ 行两个正整数 $a,b$ 表示第 $i - 1$ 种蛋糕的长和宽。
数据范围保证:$1 \leq n \leq 100$,$1 \leq len \leq 2000$, $1 \leq a_i,b_i \leq 10^5$。
### 输出格式
输出一行整数,表示有几种摆放方法可以获得长度为 $len$ 的橙线,对 $10^9 + 7$ 取模。
### 样例输入
```text
2 5
1 4
4 5
```
### 样例输出
```text
2
```
### 样例说明
第一种:将第一种蛋糕竖着放,即长度贡献为 $1$,然后第二块蛋糕也竖着放。
第二种:将第二块蛋糕横着放,直接满足了条件。