#include <bits/stdc++.h>
using namespace std;
int main( ) {
// your code goes here
int n, m;
cin >> n >> m;
vector< vector< int >> matrix( n+ 5 ) ;
for ( int i = 1 ; i <= m; i++ ) {
int a, b;
cin >> a >> b;
matrix[ a] .push_back ( b) ;
matrix[ b] .push_back ( a) ;
}
int source = 1 ; // here we are taking source as 1 because our input will be as source 1.
// this source will only work with our input.
// for another input we have to change our source.
// vector<int> used(n+5,0);
unordered_map< int , int > used;
queue< int > q;
q.push ( source) ;
used[ source] = 1 ;
vector< int > leaves;
while ( ! q.empty ( ) ) {
int removed = q.front ( ) ;
q.pop ( ) ;
int count = 0 ;
for ( int i : matrix[ removed] ) {
if ( used[ i] == 0 ) {
q.push ( i) ;
used[ i] = 1 ;
count + = 1 ;
}
}
if ( count == 0 ) leaves.push_back ( removed) ;
cout << "The children of node " << removed << " are: " << count << endl;
}
cout << endl << "The leaf Nodes are:- " << endl;
for ( int i : leaves) {
cout << i << " " ;
}
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gbWF0cml4KG4rNSk7CgkKCWZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKyl7CgkJaW50IGEsIGI7CgkJY2luID4+IGEgPj4gYjsKCQltYXRyaXhbYV0ucHVzaF9iYWNrKGIpOwoJCW1hdHJpeFtiXS5wdXNoX2JhY2soYSk7Cgl9CgkKCWludCBzb3VyY2UgPSAxOyAvLyBoZXJlIHdlIGFyZSB0YWtpbmcgc291cmNlIGFzIDEgYmVjYXVzZSBvdXIgaW5wdXQgd2lsbCBiZSBhcyBzb3VyY2UgMS4KCS8vIHRoaXMgc291cmNlIHdpbGwgb25seSB3b3JrIHdpdGggb3VyIGlucHV0LgoJLy8gZm9yIGFub3RoZXIgaW5wdXQgd2UgaGF2ZSB0byBjaGFuZ2Ugb3VyIHNvdXJjZS4KCQoJLy8gdmVjdG9yPGludD4gdXNlZChuKzUsMCk7Cgl1bm9yZGVyZWRfbWFwPGludCwgaW50PiB1c2VkOwoJcXVldWU8aW50PiBxOwoJcS5wdXNoKHNvdXJjZSk7CgkKCXVzZWRbc291cmNlXSA9IDE7Cgl2ZWN0b3I8aW50PiBsZWF2ZXM7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWludCByZW1vdmVkID0gcS5mcm9udCgpOwoJCQoJCXEucG9wKCk7CgkJaW50IGNvdW50ID0gMDsKCQkKCQlmb3IgKGludCBpIDogbWF0cml4W3JlbW92ZWRdKXsKCQkJaWYodXNlZFtpXSA9PSAwKXsKCQkJCXEucHVzaChpKTsKCQkJCXVzZWRbaV0gPSAxOwoJCQkJY291bnQgKz0gMTsKCQkJfQoJCX0KCQkKCQlpZihjb3VudCA9PSAwKSBsZWF2ZXMucHVzaF9iYWNrKHJlbW92ZWQpOwoJCQoJCWNvdXQgPDwgIlRoZSBjaGlsZHJlbiBvZiBub2RlICIgPDwgcmVtb3ZlZCA8PCAiIGFyZTogIiA8PCBjb3VudCA8PCBlbmRsOwoJfQoJCgljb3V0IDw8IGVuZGwgPDwgIlRoZSBsZWFmIE5vZGVzIGFyZTotICIgPDwgZW5kbDsKCQoJZm9yIChpbnQgaSA6IGxlYXZlcyl7CgkJY291dCA8PCBpIDw8ICIgIjsKCX0KCQoJCglyZXR1cm4gMDsKfQ==