#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
const double eps = 1e-9;
const double pi = acos(-1.0);
const int mod = (int)1e9 + 7;
int a[111][2], dp[3333][111][2];
int main() {
  int n, l;
  cin >> n >> l;
  for (int i = 0; i < n; i++) {
    cin >> a[i][0] >> a[i][1];
  }
  for (int i = 0; i < n; i++) {
    dp[a[i][0]][i][0]++;
    if (a[i][0] != a[i][1]) {
      dp[a[i][1]][i][1]++;
    }
  }
  for (int i = 0; i < l; i++) {
    for (int j = 0; j < n; j++) {
      for (int jj = 0; jj < 2; jj++) {
        for (int k = 0; k < n; k++) {
          if (j == k) continue;
          for (int kk = 0; kk < 2; kk++) {
            if (kk == 1 && a[k][0] == a[k][1]) break;
            if (a[j][jj ^ 1] == a[k][kk]) {
              dp[i + a[k][kk]][k][kk] += dp[i][j][jj];
              dp[i + a[k][kk]][k][kk] %= mod;
            }
          }
        }
      }
    }
  }
  int res = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < 2; j++) {
      res += dp[l][i][j];
      res %= mod;
    }
  }
  cout << res << endl;
  return 0;
}
