#include using namespace std; const int maxn = 1000 + 10; int edge[maxn][maxn]; int mark[maxn], d[maxn]; int n, m; int find_min() { int ret = -1; // we dont know who has the minimum degree for(int i=0;i d[i]) // i has less degree than ret ret = i; return ret; } void delete_node(int id) { mark[id] = 1; // deleting id for(int i=0;i> n >> m; for(int i=0;i> u >> v; u--; // we are 0 base v--; d[u]++; d[v]++; edge[u][v]++; // multiple edges!!! edge[v][u]++; } int ans = 0; for(int t=0;t