#include<bits/stdc++.h> usingnamespace std; //#define int long long inlineintread(){int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+ (x<<3)+(ch^48);ch=getchar();}return x*f;} //#define M //#define mo //#define N int n, m, i, j, k; int x, y, a[15]; int f[15][15][2][2];
intdfs(int n, int lst, int p, int q) { if(n==0) return1; int i, k=0; if(f[n][lst][p][q]!=-1) return f[n][lst][p][q]; for(i=0; i<=9; ++i) { if(!p && i>a[n]) break; if(q && abs(i-lst)<2) continue; // if(q && i<lst) continue; k+=dfs(n-1, i, p|(i<a[n]), q||i); } // printf("%d ", k); return f[n][lst][p][q]=k; }