/*Siberian Squirrel*//*Cute KiloFish*/#include<bits/stdc++.h>#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#define ACM_LOCALusingnamespace std;typedeflonglong ll;constdouble PI =acos(-1);constdouble eps =1e-4;/*const int MOD = 998244353, r = 119, k = 23, g = 3;
const int MOD = 1004535809, r = 479, k = 21, g = 3;*/constint MOD =1e9+7;constint M =1e3+10;constint N =1e6+10;//inline int rnd(){static int seed=2333;return seed=(((seed*666666ll+20050818)%998244353)^1000000007)%1004535809;}int n, m;int x, y;double dp[N];int fly[N];voidsolve(){for(int i =1; i <= m;++ i){
cin >> x >> y;
fly[x]= y;}for(int i = n; i >=0;-- i){
dp[i]=0;for(int j =1; j <=6;++ j){if(i + j >= n){
dp[i]+= dp[n]/6.0;}else{
dp[i]+= dp[i + j]/6.0;}}
dp[i]++;if(fly[i]!=-1) dp[i]= dp[fly[i]];}
cout << fixed <<setprecision(4)<< dp[0]-1<< endl;}intmain(){
IO;#ifdef ACM_LOCALfreopen("input","r",stdin);freopen("output","w",stdout);#endifint o =1, cases =0;// cin >> o;while(o --){while(cin >> n >> m){memset(fly,-1,sizeof(int)*(n +1));if(n + m)solve();elsebreak;}}return0;}