#include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 int get(int n){ if(n==8)return 2; if(n==0||n==6||n==9||n==4)return 1; return 0; } long long dp[18][2][2]; bool f[18][2][2]; long long dfs(string &s,string &t,int a,int b,int c){ if(a==s.size()){ return 1; } if(f[a][b][c])return dp[a][b][c]; long long ret= 0; rep(i,10){ if(t[a]!='*'){ if(i!=t[a]-'0')continue; if(t[a]=='0'&&c==0)continue; } int aa = a+1; int bb = b; int cc = c; if(i!=0)cc = 1; if(b==0&&s[a]-'0' < i)continue; if(s[a]-'0' > i)bb = 1; ret += dfs(s,t,aa,bb,cc); } dp[a][b][c] = ret; f[a][b][c] = true; return ret; } long long get(string s,string t){ //cout<>K; long long ng= 0,ok = 100000000000000000; //cout<1LL){ long long mid = (ok+ng)/2; if(gg(mid)>=K)ok = mid; else ng = mid; } //cout<