#include <cstdio>#include <cstring>#include <algorithm>#include <string>#include <iostream>using namespace std;const int mod = 100000000;string c, s, l, r;int tot;int dp[133][13][133];void add(int &a, int b) { a += b; if(a >= mod) a -= mod;}bool ok(char c, int pre, int now) { if(c == '/') return pre < now; if(c == '\\') return pre > now; if(c == '-')return pre == now; return 0;}int dfs(int len, int pre, int k, bool lim, bool zero) {// printf("len = %d pre = %d k = %d lim = %d zero = %d\n", len, pre, k, lim, zero); if(!len) return k == tot; if(!lim && ~pre && ~dp[len][pre][k]) return dp[len][pre][k]; int m = lim ? (s[len-1]-'0'): 9; int i; int ret = 0; for(i = 0; i <= m; i++) { if(zero) { if(!i) add( ret, dfs(len-1,-1,0,lim&&i==m, 1) ); else add( ret, dfs(len-1, i, 0, lim&&i==m, 0) ); } else { if(ok(c[k], pre, i) && k < tot) add( ret, dfs(len-1, i, k+1,i==m&&lim, 0) ); else if(k > 0 && ok(c[k-1], pre, i)) add( ret, dfs(len-1, i, k,i==m&&lim, 0) ); } } if(!lim && ~pre) dp[len][pre][k] = ret; return ret;}int gao(string l) { s = l; return dfs(s.size(), -1, 0, 1, 1);}void cut(string &s, bool g) { int i = 0; while(i < s.size() && s[i] == '0') i++; if(i == s.size()) s = "0"; else s = s.substr(i, s.size()-i); reverse(s.begin(), s.end()); if(g && s != "0") { s[0]--; for(i = 0; i < s.size()-1; i++) if(s[i] < '0') { s[i] += 10; s[i+1]--; } if(s[0] < '0') s[0] = '0'; } i = s.size()-1; while(i >= 0 && s[i] == '0') i--; if(i == -1) s = "0"; else s = s.substr(0, i+1); //cout << s << endl;}int main() { int i, j; while(cin >> c >> l >> r) { tot = c.size(); memset(dp, -1, sizeof(dp)); cut(l, 1); cut(r, 0); printf("%08d\n", ((gao(r)-gao(l))%mod+mod)%mod ); } return 0;}/*//////\\\1234563333 345345345444*/