import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
char[] s1 = sc.next().toCharArray();
char[] s2 = sc.next().toCharArray();
int len1 = sc.nextInt(), len2 = sc.nextInt(), mod = 1000007;
int[] f = new int[len2+1];
int res = 0;
for(int i=1; i <= len2; i++) {
f[i] = (26*f[i-1]) % mod;
if(i <= s1.length) f[i] = (f[i] + mod - s1[i-1]) % mod;
if(i <= s2.length) f[i] = (f[i] + s2[i-1]) % mod;
if(i == s2.length) f[i] = (f[i] + mod - 1) % mod;
if(i >= len1) res = (res + f[i]) % mod;
}
System.out.println(res);
}
}
}
/*
f[i]表示长度为i 在s1和s2之间的字符串的数量。
f[i] = 26* f[i-1] -s1[i-1] + s2[i-1]
*/