#include <bits/stdc++.h>
using namespace std;
long long n,k,a[10][10];
vector<int>sol={1,2,3,4,5,6,7,8};
int ans=0;
void solve(int i){
    long long tmp=0;
    for(int i=0;i<n;i++){
        tmp+=a[sol[i]][sol[i+1]];
    }
    tmp+=a[sol[n-1]][1];
    if(tmp==k)ans+=1;
    tmp=0;
 while(next_permutation(sol.begin(),sol.begin()+n)){
    if(sol[0]==1){
        for(int i=0;i<n;i++){
            tmp+=a[sol[i]][sol[i+1]];
        }

        tmp+=a[sol[n-1]][1];
        if(tmp==k)ans+=1;
        tmp=0;
    }
 }
}
int main() {
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++) {
            cin >> a[i][j];
        }
    }
solve(1);
    cout<<ans;
    return 0;
}

#include<iostream>
#include<algorithm>
using namespace std;

const int N = 1e5 + 10;

int n, x;
int a[N];

int main(){
    cin >> n >> x;
    for(int i = 0; i < n; i++) cin >> a[i];
    int i = 0, j = 0;
    while(j < n){
        if(a[j] == x) j++;
        else a[i++] = a[j++];
    }
    for(int k = 0; k < i; k++) cout << a[k] << " ";
    cout << endl;
    return 0;
}