#include<bits/stdc++.h>
#define F first
#define S second
using namespace std;
int const N=50001, mod=1e9+7;
bool odw[N];
long long il[N], zm;
pair<long long,long long>dp[N];
vector<int>g[N],pref[N],suf[N];
void dfs(int v,int o){
odw[v]=1;
for(int i:g[v]){
if(odw[i]==0) {
dfs(i,v);
pref[v].push_back(dp[i].F+dp[i].S);
suf[v].push_back(dp[i].F+dp[i].S);
}
}
/*cout<<v<<' ';
for(auto i:pref[v]) cout<<i<<' ';
cout<<endl;*/
if(v!=1&&g[v].size()==1) suf[v].push_back(1);
for(int i=1;i<pref[v].size();i++) pref[v][i]=pref[v][i]*pref[v][i-1]%mod;
for(int i=suf[v].size()-2;i>=0;i--) suf[v][i]=suf[v][i+1]*suf[v][i]%mod;
for(int i=0;i<g[v].size();i++){
if(g[v][i]!=o){
if(i!=0&&i!=g[v].size()-1) dp[v].F=(dp[v].F+dp[i].S*pref[v][i-1]*suf[v][i+1])%mod;
else if(i==0&&i!=g[v].size()-1) {dp[v].F=(dp[v].F+dp[i].S*suf[v][i+1])%mod; cout<<v<<' ';}
else if(i==g[v].size()-1&&i!=0) dp[v].F=(dp[v].F+dp[i].S*pref[v][i-1])%mod;
else {dp[v].F=dp[v].F+dp[i].S; cout<<v<<endl;}
}
}
dp[v].S=suf[v][0];
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m,a,b;
cin>>n>>m;
for(int i=1;i<=n;i++) il[i]=1;
for(int i=0;i<m;i++){
cin>>a>>b; g[a].push_back(b); g[b].push_back(a);
}
dfs(1,0);
cout<<endl;
for(int i=1;i<=n;i++) cout<<dp[i].F<<' '<<dp[i].S<<endl;
//cout<<(dp[1].F+dp[1].S)%mod;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGNvbnN0IE49NTAwMDEsIG1vZD0xZTkrNzsKYm9vbCBvZHdbTl07CmxvbmcgbG9uZyBpbFtOXSwgem07CnBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz5kcFtOXTsKdmVjdG9yPGludD5nW05dLHByZWZbTl0sc3VmW05dOwoKdm9pZCBkZnMoaW50IHYsaW50IG8pewogICAgb2R3W3ZdPTE7CiAgICBmb3IoaW50IGk6Z1t2XSl7CiAgICAgICAgaWYob2R3W2ldPT0wKSB7CiAgICAgICAgCWRmcyhpLHYpOwogICAgICAgIAlwcmVmW3ZdLnB1c2hfYmFjayhkcFtpXS5GK2RwW2ldLlMpOwogICAgICAgIAlzdWZbdl0ucHVzaF9iYWNrKGRwW2ldLkYrZHBbaV0uUyk7CiAgICAgICAgfQogICAgfQogICAgLypjb3V0PDx2PDwnICc7CiAgICBmb3IoYXV0byBpOnByZWZbdl0pIGNvdXQ8PGk8PCcgJzsKICAgIGNvdXQ8PGVuZGw7Ki8KICAgIGlmKHYhPTEmJmdbdl0uc2l6ZSgpPT0xKSBzdWZbdl0ucHVzaF9iYWNrKDEpOwogICAgZm9yKGludCBpPTE7aTxwcmVmW3ZdLnNpemUoKTtpKyspIHByZWZbdl1baV09cHJlZlt2XVtpXSpwcmVmW3ZdW2ktMV0lbW9kOwogICAgZm9yKGludCBpPXN1Zlt2XS5zaXplKCktMjtpPj0wO2ktLSkgc3VmW3ZdW2ldPXN1Zlt2XVtpKzFdKnN1Zlt2XVtpXSVtb2Q7CiAgICBmb3IoaW50IGk9MDtpPGdbdl0uc2l6ZSgpO2krKyl7CiAgICAJaWYoZ1t2XVtpXSE9byl7CiAgICAgICAgICAgIGlmKGkhPTAmJmkhPWdbdl0uc2l6ZSgpLTEpIGRwW3ZdLkY9KGRwW3ZdLkYrZHBbaV0uUypwcmVmW3ZdW2ktMV0qc3VmW3ZdW2krMV0pJW1vZDsKICAgICAgICAgICAgZWxzZSBpZihpPT0wJiZpIT1nW3ZdLnNpemUoKS0xKSB7ZHBbdl0uRj0oZHBbdl0uRitkcFtpXS5TKnN1Zlt2XVtpKzFdKSVtb2Q7IGNvdXQ8PHY8PCcgJzt9CiAgICAgICAgICAgIGVsc2UgaWYoaT09Z1t2XS5zaXplKCktMSYmaSE9MCkgZHBbdl0uRj0oZHBbdl0uRitkcFtpXS5TKnByZWZbdl1baS0xXSklbW9kOwogICAgICAgICAgICBlbHNlIHtkcFt2XS5GPWRwW3ZdLkYrZHBbaV0uUzsgY291dDw8djw8ZW5kbDt9CiAgICAJfQogICAgfQogICAgZHBbdl0uUz1zdWZbdl1bMF07Cn0KCmludCBtYWluKCl7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKICAgIGludCBuLG0sYSxiOwogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspICAgaWxbaV09MTsKICAgIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgCWNpbj4+YT4+YjsgIGdbYV0ucHVzaF9iYWNrKGIpOyAgZ1tiXS5wdXNoX2JhY2soYSk7CiAgICB9CiAgICAKICAgIGRmcygxLDApOwogICAgY291dDw8ZW5kbDsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSBjb3V0PDxkcFtpXS5GPDwnICc8PGRwW2ldLlM8PGVuZGw7CiAgICAvL2NvdXQ8PChkcFsxXS5GK2RwWzFdLlMpJW1vZDsKfQo=