#include #include #include using namespace std; namespace std{ template class hash>{ public: size_t operator()(const pair &p) const {return hash() (((long long)(p.first))<<32|p.second);} }; } unordered_map,int>m; unordered_map,long long>memo; vector f; int N; long long dfs(int i,int j){ long long r=0; pair p=make_pair(i,j); if(memo.find(p)!=memo.end())return memo[p]; if(i==j)return !f[i]; for(int k=0;k