#include<bits/stdc++.h>
using namespace std ;
#define MAX 100000
vector<int> edges[MAX] ;
int main()
{
int N,E ;
printf("Number of Nodes: ") ;
scanf("%d",&N) ;
printf("Number of Edges: ") ;
scanf("%d",&E) ;
puts("Node -> Node") ;
int outdeg[N+1] ;
memset(outdeg,0,sizeof(outdeg)) ;
for(int i=1 ; i<=E ; i++)
{
int x, y ;
scanf("%d %d",&x,&y) ;
edges[x].push_back(y) ;
outdeg[y]++ ;
}
for(int i=1 ; i<=N ; i++)
{
int sz = edges[i].size() ;
printf("Node-%d is connected with: ",i) ;
for(int j=0 ; j<sz ; j++)
if(edges[i][j])
printf("%d ",edges[i][j]) ;
printf("\nIndegree: %d & Outdegree: %d",outdeg[i],sz) ;
printf("\n\n") ;
}
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CiNkZWZpbmUgTUFYIDEwMDAwMAp2ZWN0b3I8aW50PiBlZGdlc1tNQVhdIDsKaW50IG1haW4oKQp7CiAgICBpbnQgTixFIDsKICAgIHByaW50ZigiTnVtYmVyIG9mIE5vZGVzOiAiKSA7CiAgICBzY2FuZigiJWQiLCZOKSA7CiAgICBwcmludGYoIk51bWJlciBvZiBFZGdlczogIikgOwogICAgc2NhbmYoIiVkIiwmRSkgOwogICAgcHV0cygiTm9kZSAtPiBOb2RlIikgOwogICAgaW50IG91dGRlZ1tOKzFdIDsKICAgIG1lbXNldChvdXRkZWcsMCxzaXplb2Yob3V0ZGVnKSkgOwogICAgZm9yKGludCBpPTEgOyBpPD1FIDsgaSsrKQogICAgewogICAgICAgIGludCB4LCB5IDsKICAgICAgICBzY2FuZigiJWQgJWQiLCZ4LCZ5KSA7CiAgICAgICAgZWRnZXNbeF0ucHVzaF9iYWNrKHkpIDsKICAgICAgICBvdXRkZWdbeV0rKyA7CiAgICB9CiAgICBmb3IoaW50IGk9MSA7IGk8PU4gOyBpKyspCiAgICB7CiAgICAgICAgaW50IHN6ID0gZWRnZXNbaV0uc2l6ZSgpIDsKICAgICAgICBwcmludGYoIk5vZGUtJWQgaXMgY29ubmVjdGVkIHdpdGg6ICIsaSkgOwogICAgICAgIGZvcihpbnQgaj0wIDsgajxzeiA7IGorKykKICAgICAgICAgICAgaWYoZWRnZXNbaV1bal0pCiAgICAgICAgICAgICAgICBwcmludGYoIiVkICIsZWRnZXNbaV1bal0pIDsKICAgICAgICBwcmludGYoIlxuSW5kZWdyZWU6ICVkICYgT3V0ZGVncmVlOiAlZCIsb3V0ZGVnW2ldLHN6KSA7CiAgICAgICAgcHJpbnRmKCJcblxuIikgOwogICAgfQogICAgcmV0dXJuIDAgOwp9Cg==