using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.Linq; class Solver { private const long MOD = 1000000007; private long calc(ref String n, int p){ long[,,] dp = new long[2,800,2*4*2]; int u = 0; int v = 1; dp[0,0,0] = 1; int[] mooood3 = new int[12]; for(int i=0; i<12; i++){ mooood3[i] = i%3; } for(int i=0; ik){ continue; } int a_ = a|(d= MOD) dp[v,0,s_] -= MOD; } dp[u,0,s] = 0; }}} } else{ for(int j=0;jk){ continue; } int a_ = a|(d= MOD) dp[v,j_,s_] -= MOD; } dp[u,j,s] = 0; }}}} } u ^= 1; v ^= 1; } long ret = 0; for(int j=1;j=MOD) ret -= MOD; }}}} return ret; } public void Solve() { String[] input = Console.ReadLine().Split(); int p = int.Parse(input[2]); long ans = calc(ref input[1], p); ans = (ans - calc(ref input[0], p) + MOD) % MOD; int b=0; int c=0; int d=0; for(int i=0;i