#include using namespace std; int uf[501]; int find(int x) { if(uf[x] < 0) return x; return uf[x] = find(uf[x]); } bool merge(int x,int y) { x = find(x); y = find(y); if(x==y) return false; uf[x] += uf[y]; uf[y] = x; return true; } int degree[501]; map mn; int main(void) { cin.tie(0); ios::sync_with_stdio(false); memset(uf,-1,sizeof(uf)); int n,m,a,b; cin >> n >> m; int N = 0; for(int i=0;i> a >> b; if(mn.find(a)==mn.end()) { mn[a] = N++; } if(mn.find(b)==mn.end()) { mn[b] = N++; } a = mn[a]; b = mn[b]; merge(a,b); degree[a]+=1; degree[b]+=1; } int cnt = 0; for(int i=0;i 1) { cout << "NO" << '\n'; return 0; } cout << "YES" << '\n'; return 0; }