#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <cstring>
#include <cstdlib>
#include <cctype>
#include <map>
#include <string>
#include <sstream>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <cassert>
#define repn( i , a , b ) for( int i = ( int ) a ; i < ( int ) b ; i ++ )
#define rep( i , n ) repn( i , 0 , n )
#define all( x ) x.begin() , x.end()
#define rall( x ) x.rbegin() , x.rend()
#define mp make_pair
#define fst first
#define snd second
using namespace std;
typedef long long int64;
typedef long double ldouble;
typedef pair< int , int > pii;
const int MAXN = 1000005;
vector<int> G[MAXN];
long double p[MAXN] = {0};
int main(){
int N, M;
int u, v;
scanf("%d %d", &N, &M);
if ( N >= MAXN ) while(1);
while ( M-- ){
scanf("%d %d", &u, &v);
u--, v--;
if ( u >= v ) while(1);
if ( u < 0 || u >= N ) while(1);
if ( v < 0 || v >= N ) while(1);
G[u].push_back( v );
}
p[0] = 1.0;
int S;
for ( u=0; u < N; u++ ){
S = (int) G[u].size();
if ( S == 0 ){
printf("%.12Lf\n", p[u]);
continue;
}
for ( int j=0; j < S; ++j ){
v = G[u][j];
p[v] += (p[u] / S);
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjY3R5cGU+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y2Fzc2VydD4KCiNkZWZpbmUgcmVwbiggaSAsIGEgLCBiICkgZm9yKCBpbnQgaSA9ICggaW50ICkgYSA7IGkgPCAoIGludCApIGIgOyBpICsrICkKI2RlZmluZSByZXAoIGkgLCBuICkgcmVwbiggaSAsIDAgLCBuICkgCiNkZWZpbmUgYWxsKCB4ICkgIHguYmVnaW4oKSAsIHguZW5kKCkKI2RlZmluZSByYWxsKCB4ICkgeC5yYmVnaW4oKSAsIHgucmVuZCgpCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZnN0IGZpcnN0CiNkZWZpbmUgc25kIHNlY29uZAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgaW50NjQ7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGRvdWJsZTsKdHlwZWRlZiBwYWlyPCBpbnQgLCBpbnQgPiBwaWk7Cgpjb25zdCBpbnQgTUFYTiA9IDEwMDAwMDU7CQp2ZWN0b3I8aW50PiBHW01BWE5dOwpsb25nIGRvdWJsZSBwW01BWE5dID0gezB9OwoKaW50IG1haW4oKXsKCWludCBOLCBNOwoJaW50IHUsIHY7CglzY2FuZigiJWQgJWQiLCAmTiwgJk0pOwoJaWYgKCBOID49IE1BWE4gKSB3aGlsZSgxKTsKCXdoaWxlICggTS0tICl7CgkJc2NhbmYoIiVkICVkIiwgJnUsICZ2KTsKCQl1LS0sIHYtLTsKCQlpZiAoIHUgPj0gdiApIHdoaWxlKDEpOwoJCWlmICggdSA8IDAgfHwgdSA+PSBOICkgd2hpbGUoMSk7CgkJaWYgKCB2IDwgMCB8fCB2ID49IE4gKSB3aGlsZSgxKTsKCQlHW3VdLnB1c2hfYmFjayggdiApOwoJfQoJcFswXSA9IDEuMDsKCWludCBTOwoJZm9yICggdT0wOyB1IDwgTjsgdSsrICl7CgkJUyA9IChpbnQpIEdbdV0uc2l6ZSgpOwoJCWlmICggUyA9PSAwICl7IAoJCSAgICBwcmludGYoIiUuMTJMZlxuIiwgcFt1XSk7IAoJCSAgICBjb250aW51ZTsKCQl9CgkJZm9yICggaW50IGo9MDsgaiA8IFM7ICsraiApewoJCQl2ID0gR1t1XVtqXTsKCQkJcFt2XSArPSAocFt1XSAvIFMpOwoJCX0KCX0KCXJldHVybiAwOwp9