hdu4405 Aeroplane chess

#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std;
int n, m, uu, vv, dy[100005];
double dp[100015];
int main(){
	while(scanf("%d %d", &n, &m)!=EOF){
		if(!n && !m)	break;
		memset(dp, 0, sizeof(dp));
		memset(dy, 0, sizeof(dy));
		for(int i=1; i<=m; i++){
			scanf("%d %d", &uu, &vv);
			dy[uu] = vv;
		}
		for(int i=n-1;i>=0; i--){
			if(!dy[i])
				dp[i] = (dp[i+1] + dp[i+2] + dp[i+3] + dp[i+4] + dp[i+5] + dp[i+6]) / 6.0 + 1.0;
			else
				dp[i] = dp[dy[i]];
		}
		printf("%.4lf
", dp[0]);
	}
	return 0;
}