| 
					
				 | 
			
			
				@@ -0,0 +1,26 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const MOD int = 1000000007 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var dy = []int{0, 1, 0, -1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var dx = []int{1, 0, -1, 0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func findPaths(m int, n int, N int, i int, j int) int { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var dp [50][50]int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for k := 0; k < N; k++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var nxt [50][50]int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for y := 0; y < m; y++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for x := 0; x < n; x++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for d := 0; d < 4; d++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					ny, nx := y+dy[d], x+dx[d] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if ny == -1 || ny == m || nx == -1 || nx == n { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						nxt[y][x]++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						nxt[y][x] = (nxt[y][x] + dp[ny][nx]) % MOD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		dp = nxt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return dp[i][j] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |