#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ll n ;
ll m;
cin>>n>>m;
vector<ll>G[n+1];
for(int i = 1 ; i<=m ;i++){
int u,v;
cin>>u>>v;
G[u].push_back(v);
G[v].push_back(u);
}
int red=0 , blue = 0;
vector<int>used(n+1);
queue<ll>q;
used[1]=1;
q.push(1);red++;
bool ans = true;
while(!q.empty()){
auto u = q.front();
q.pop();
for(auto v : G[u]){
if(used[v] == 0){
if(used[u] == 1){
used[v]=3;
blue++;
}else if(used[u] == 3){
used[v] = 1;
red++;
}
q.push(v);
}else{
if(used[u]+used[v] != 4){
ans = false;
}
}}
}
if (ans == false){
cout<<"nO";
}else{
cout<<red <<" "<<blue<<endl;
cout<<"YES"<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKaW50IG1haW4oKSB7CiAgICBsbCBuIDsKICAgIGxsIG07CiAgICAKICAgIGNpbj4+bj4+bTsKICAgIAogICAgdmVjdG9yPGxsPkdbbisxXTsKICAgIAogICAgZm9yKGludCBpID0gMSA7IGk8PW0gO2krKyl7CiAgICAJaW50IHUsdjsKICAgIAljaW4+PnU+PnY7CiAgICAJR1t1XS5wdXNoX2JhY2sodik7CiAgICAJR1t2XS5wdXNoX2JhY2sodSk7CiAgICB9CiAgICBpbnQgcmVkPTAgLCBibHVlID0gMDsKICAgIHZlY3RvcjxpbnQ+dXNlZChuKzEpOwogICAgcXVldWU8bGw+cTsKICAgIHVzZWRbMV09MTsKICAgIHEucHVzaCgxKTtyZWQrKzsKICAgIGJvb2wgYW5zID0gdHJ1ZTsKICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgCWF1dG8gdSA9IHEuZnJvbnQoKTsKICAgIAlxLnBvcCgpOwogICAgCQogICAgCWZvcihhdXRvIHYgOiBHW3VdKXsKICAgIAkJaWYodXNlZFt2XSA9PSAwKXsKICAgIAkJCWlmKHVzZWRbdV0gPT0gMSl7CiAgICAJCQl1c2VkW3ZdPTM7CiAgICAJCiAgICAJCQlibHVlKys7CiAgICAJCX1lbHNlIGlmKHVzZWRbdV0gPT0gMyl7CiAgICAJCQkJdXNlZFt2XSA9IDE7CiAgICAJCQkJcmVkKys7CiAgICAJCX0KICAgIAkJcS5wdXNoKHYpOwogICAgCX1lbHNlewogICAgCSAgaWYodXNlZFt1XSt1c2VkW3ZdICE9IDQpewogICAgCQlhbnMgPSBmYWxzZTsKICAgIAl9CQogICAgCX19CiAgICAJCiAgICAJCiAgICB9CiAgIGlmIChhbnMgPT0gZmFsc2UpewogICAJY291dDw8Im5PIjsKICAgfWVsc2V7CiAgIAljb3V0PDxyZWQgPDwiICI8PGJsdWU8PGVuZGw7CiAgIAljb3V0PDwiWUVTIjw8ZW5kbDsKICAgfQoJcmV0dXJuIDA7Cn0=