#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<vector<ll>> e;
vector<bool> vis;
ll ans=0,n;
void dfs(ll u,ll dig,vector<ll> vis){
	ans++;
	vis[u]=true;
	for(auto v:e[u]){
		if(vis[v]==false and dig+1<=n) dfs(v,dig+1,vis);
	}
	vis[u]=false;
}
int main(){
	ll m,i,j,a,b,k;
	cin>>n>>m;
	e.resize(n+1);
	set<pair<ll,ll>> st;
	for(i=0 ; i<m ; i++){
		cin>>a>>b;
		st.insert({a,b});
		st.insert({b,a});
	}
	for(i=1 ; i<n ; i++){
		for(j=i+1 ; j<=n ; j++){
			if(st.count({i,j})==0 and st.count({j,i})==0) e[i].push_back(j);
		}
	}
	for(i=1 ; i<=n ; i++){
		vector<ll> vis(n+1,false);
		dfs(i,1,vis);
	}
	cout<<ans+1;
	return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |