#include <bits/stdc++.h>
using namespace std;
const int MAXN = 51, MOD = 1e9 + 7, MAXT = 2500;
int n, ttot, t[MAXN], g[MAXN], dp[MAXN][MAXN][MAXN][4], cnt[4],
    dp2[MAXN][MAXT + 10], dp3[MAXN][MAXN][MAXT + 10], ans;
int main() {
  scanf("%d %d", &n, &ttot);
  for (int i = 0; i < n; ++i) scanf("%d %d", &t[i], &g[i]), cnt[g[i]]++;
  for (int i = 0; i <= 3; ++i) dp[0][0][0][i] = 1;
  long long aux;
  for (int i = 0, j, k, lst; i <= cnt[1]; ++i)
    for (j = 0; j <= cnt[2]; ++j)
      for (k = 0; k <= cnt[3]; ++k)
        for (lst = 0; lst <= 3; ++lst) {
          aux = (!i && !j && !k);
          if (i - 1 >= 0 && lst != 1) aux += 1LL * i * dp[i - 1][j][k][1];
          if (j - 1 >= 0 && lst != 2) aux += 1LL * j * dp[i][j - 1][k][2];
          if (k - 1 >= 0 && lst != 3) aux += 1LL * k * dp[i][j][k - 1][3];
          dp[i][j][k][lst] = aux % MOD;
        }
  dp2[0][0] = 1;
  dp3[0][0][0] = 1;
  for (int i = 0, j, k, curt; i < n; ++i) {
    if (g[i] == 3) {
      for (j = cnt[3] - 1; j >= 0; --j)
        for (curt = ttot - t[i]; curt >= 0; --curt)
          dp2[j + 1][curt + t[i]] =
              (0LL + dp2[j + 1][curt + t[i]] + dp2[j][curt]) % MOD;
    } else if (g[i] == 1) {
      for (j = cnt[1] - 1; j >= 0; --j)
        for (k = 0; k <= cnt[2]; ++k)
          for (curt = ttot - t[i]; curt >= 0; --curt)
            dp3[j + 1][k][curt + t[i]] =
                (0LL + dp3[j + 1][k][curt + t[i]] + dp3[j][k][curt]) % MOD;
    } else if (g[i] == 2) {
      for (j = cnt[2] - 1; j >= 0; --j)
        for (k = 0; k <= cnt[1]; ++k)
          for (curt = ttot - t[i]; curt >= 0; --curt)
            dp3[k][j + 1][curt + t[i]] =
                (dp3[k][j + 1][curt + t[i]] + dp3[k][j][curt]) % MOD;
    }
  }
  for (int i = 0, j, k, curt; i <= cnt[1]; ++i)
    for (j = 0; j <= cnt[2]; ++j)
      for (k = 0; k <= cnt[3]; ++k)
        for (curt = 0; curt <= ttot; ++curt)
          ans = (0LL + ans +
                 (1LL * (1LL * dp3[i][j][curt] * dp2[k][ttot - curt] % MOD) *
                  dp[i][j][k][0]) %
                     MOD) %
                MOD;
  printf("%d\n", ans);
}
