#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) #define indexOf(v,x) (find(all(v),x)-v.begin()) pair dp[20][2][2]; long long f(string s) { if (s.size() < 2)return s[0]>='2'; memset(dp,0,sizeof(dp)); dp[0][0][0] = make_pair(1,0); rep(i,s.size())rep(j,2)rep(k,2) { pair &a = dp[i][j][k]; for (int d = 0; (d + '0' <= s[i] || j)&&d<10; d++) { pair &b = dp[i+1][j||d+'0''2') { long long p = 1; rep(j, s.size() - 2)p *= 10; res += p; } return res; } int main() { string a,b; cin >> a>>b; int x = 0; rep(i, a.size() - 1)if (a[i] == '1'&&a[i + 1] == '2')x++; if (a == b) { cout << x << endl; }else { cout << f(b) - f(a) + x << endl; } return 0; }