#include<bits/stdc++.h>#defineall(c) c.begin(), c.end()#defineintlonglongusingnamespace std;using LL =longlong;constdouble PI =acos(-1);staticconstexprlonglong mod =998244353;intcalc(string s){int m = s.size();int memo[m +1][2010][10];memset(memo,-1,sizeof(memo));
function<int(bool,bool,int,int,int)> f =[&](bool is_limit,bool is_num,int pos,int sum,int last)->int{if(pos == m){if(!is_num)return0;if(last <=0)return0;return(sum - last)% last ==0;}if(!is_limit && is_num && memo[pos][sum][last]!=-1){return memo[pos][sum][last];}int res =0;if(!is_num){// 可以跳过当前数位
res +=f(false,false, pos +1, sum,-1);
res %= mod;}int up = is_limit ? s[pos]-'0':9;int low = is_num ?0:1;for(int d = low; d <= up;++d){
res +=f(is_limit && up == d, is_num || d !=0, pos +1, sum + d, d);
res %= mod;}if(!is_limit && is_num){
memo[pos][sum][last]= res;}return res;};returnf(true,false,0,0,-1);}boolcheck(string L){if(L.size()<2)returnfalse;int sum =0;for(int i =0; i < L.size()-1;++i){
sum += L[i]-'0';}if(L.back()=='0')returnfalse;return sum %(L.back()-'0')==0;}voidsolve(){
string l, r;
cin >> l >> r;int ans =calc(r)-calc(l)+check(l);
ans =(ans + mod)% mod;
cout << ans << endl;}signedmain(){
std::ios::sync_with_stdio(false);
std::cout.tie(nullptr);
std::cin.tie(nullptr);int T =1;// cin >> T;while(T--){solve();}return0;}