#include<bits/stdc++.h>
using namespace std;
#define int long long
#define A(a,b) (a=(a+b)%M)
string a,l,r;
const int N=3e6;
#define M 998244353
int n,b[N],c[N],s[N],l1,l2;
void Z(string&x,int n,int*t){
for(int i=1,l=1,r=0;i<n;i++){
if(i<=r)t[i]=min(t[i-l],r-i+1);
while(i+t[i]<n&&x[t[i]]==x[i+t[i]])
t[i]++;
if(r<i+t[i])l=i,r=i+t[i]-1;}}
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin>>a>>l>>r;
n=size(a),l1=size(l),l2=size(r);
l+='*'+a,r+='*'+a;s[0]=1,s[1]=-1;
Z(l,n+l1+1,b),Z(r,n+l2+1,c);
for(int i=0;i<n;i++){
int L=l1+(b[l1+i+1]<l1&&a[i+b[l1+i+1]]<l[b[l1+i+1]]);
int R=l2-(c[l2+i+1]<l2&&a[i+c[l2+i+1]]>r[c[l2+i+1]]);
if(a[i]=='0')R=1;
if(L<=R)A(s[L+i],s[i]),A(s[R+i+1],M-s[i]);
A(s[i+1],s[i]);
}
cout<<s[n]<<'\n';
}