#include using namespace std; int nth_bit(int64_t num, int n){ return (num >> n) & 1; } vector choice42, choice84, choice168; int64_t num[1<<16][16], ans[16]; int A[16][16]; int battle(int i, int j){ if(i > j) swap(i, j); return (A[i][j] == 1 ? i : j); } int main(){ for(int i=0; i<16; i++) for(int j=0; j<16; j++) cin >> A[i][j]; for(int i=0; i<(1<<4); i++){ int num = 0; for(int j=0; j<4; j++){ if(nth_bit(i, j)) num++; } if(num == 2) choice42.push_back(i); } for(int i=0; i<(1<<8); i++){ int num = 0; for(int j=0; j<8; j++){ if(nth_bit(i, j)) num++; } if(num == 4) choice84.push_back(i); } for(int i=0; i<(1<<16); i++){ vector v; for(int j=0; j<16; j++){ if(nth_bit(i, j)) v.push_back(j); } if(v.size() == 2){ num[i][battle(v[0], v[1])]++; } if(v.size() == 4){ for(auto bits : choice42){ int b1 = 0, b2 = 0; vector v1, v2; for(int j=0; j<4; j++){ if(nth_bit(bits, j)){ b1 += 1< v1, v2; for(int j=0; j<8; j++){ if(nth_bit(bits, j)){ b1 += 1< v1, v2; for(int j=0; j<16; j++){ if(nth_bit(bits, j)){ b1 += 1<