#include <bits/stdc++.h>
using namespace std;
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
int dx8[] = {0, 0, 1, 1, 1, -1, -1, -1};
int dy8[] = {1, -1, -1, 0, 1, -1, 0, 1};
long long dp[32770][226][4], n, t;
long long a[20], b[20];
long long bitmask(int mask, int sum, int gn) {
  if (sum > t) return 0;
  if (sum == t) return 1;
  long long &ret = dp[mask][sum][gn];
  if (~ret) return ret;
  ret = 0;
  for (int i = 0; i < n; i++) {
    int pos = (bool)(1 << i & mask);
    if (!pos && gn != b[i]) {
      ret += bitmask(mask | 1 << i, sum + a[i], b[i]);
      ret %= 1000000007;
    }
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  memset((dp), -1, sizeof(dp));
  cin >> n >> t;
  for (int i = 0; i < (n); i++) {
    cin >> a[i] >> b[i];
  }
  cout << bitmask(0, 0, 0) << endl;
  return 0;
}
