#include<bits/stdc++.h>
using namespace std;
const int N=2e6+5,M=998244353;
char s[N],L[N],R[N];
int n,sl,sr,a[N],b[N],dp[N],sum[N],l,r;
void exkmp(char *s,char *t,int *g){
int n=strlen(s+1),m=strlen(t+1);
s[++n]='#';
for (int i=1;i<=m;i++)s[++n]=t[i];
int k=1,f[N];
f[1]=0;
for (int i=2;i<=n;i++){
f[i]=max(0,min(k+f[k]-i,f[i-k+1]));
while (i+f[i]<=n&&s[i+f[i]]==s[f[i]+1])f[i]++;
if (f[i]+i>f[k]+k) k=i;
}
for (int i=m,j=n;i>=1;i--,j--)g[i]=f[j];
}
int main(){
scanf("%s%s%s",s+1,L+1,R+1);
n=strlen(s+1);sl=strlen(L+1);sr=strlen(R+1);
exkmp(L,s,a);exkmp(R,s,b);
sum[0]=dp[0]=1;
for (int i=1;i<=n;i++){
if (i>=sl){
l=0,r=i-sl;
if (a[r+1]<sl&&s[r+a[r+1]+1]<L[a[r+1]+1])r--;
if (i>=sr){
l=i-sr;
if (b[l+1]<sr&&s[l+b[l+1]+1]>R[b[l+1]+1])l++;
}
if (l<=r){
(dp[i]+=sum[r])%=M;
if (l)(dp[i]+=M-sum[l-1])%=M;
}
if (L[1]=='0'&&s[i]=='0')(dp[i]+=dp[i-1])%=M;
}
sum[i]=sum[i-1];
if (i<n&&s[i+1]!='0')(sum[i]+=dp[i])%=M;
}
printf("%d\n",dp[n]);
return 0;
}