#include <bits/stdc++.h>
#define FOR(i, a, b) for (int i = a; i <= b; ++i)
#define FORD(i, a, b) for (int i = a; i >= b; --i)
#define ll long long
using namespace std;
const int N = 1e6 + 5;
const ll mod = 1e9 + 19972207;
int l, u, v;
ll f[N][2], g[N][2];
string a, b;
void nhap() {
cin >> l >> a >> b;
}
void add(ll &a, const ll &b) {
a += b;
if (a >= mod) a -= mod;
}
ll pw(ll a, ll b) {
ll res = 1;
while (b) {
if (b & 1) res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}
void giai() {
int u = a.size(), v = b.size();
a = " " + a;
b = " " + b;
f[0][0] = g[0][0] = 1;
FOR(i, 1, min(u, l)) FOR(j, 0, 1) if (f[i - 1][j])
FOR(k, 0, (j ? 25 : a[i] - 'a')) add(f[i][j | (k < (a[i] - 'a'))], f[i - 1][j]);
FOR(i, 1, min(v, l)) FOR(j, 0, 1) if (g[i - 1][j])
FOR(k, 0, (j ? 25 : b[i] - 'a')) add(g[i][j | (k < (b[i] - 'a'))], g[i - 1][j]);
ll L, R;
if (v < l) R = g[v][1] * pw(26, l - v) % mod;
else if (v == l) R = g[l][1];
else if (v > l) R = (g[l][0] + g[l][1]) % mod;
if (u < l) L = f[u][1] * pw(26, l - u) % mod;
else if (u >= l) L = (f[l][0] + f[l][1]) % mod;
cout << (R - L + mod) % mod;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
#define name "strings"
if (fopen(name".inp", "r")) {
freopen(name".inp", "r", stdin);
freopen(name".out", "w", stdout);
}
nhap();
giai();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyArK2kpCiNkZWZpbmUgRk9SRChpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+PSBiOyAtLWkpCiNkZWZpbmUgbGwgbG9uZyBsb25nCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxZTYgKyA1Owpjb25zdCBsbCBtb2QgPSAxZTkgKyAxOTk3MjIwNzsKaW50IGwsIHUsIHY7CmxsIGZbTl1bMl0sIGdbTl1bMl07CnN0cmluZyBhLCBiOwoKdm9pZCBuaGFwKCkgewogICAgY2luID4+IGwgPj4gYSA+PiBiOwp9Cgp2b2lkIGFkZChsbCAmYSwgY29uc3QgbGwgJmIpIHsKICAgIGEgKz0gYjsKICAgIGlmIChhID49IG1vZCkgYSAtPSBtb2Q7Cn0KCmxsIHB3KGxsIGEsIGxsIGIpIHsKICAgIGxsIHJlcyA9IDE7CiAgICB3aGlsZSAoYikgewogICAgICAgIGlmIChiICYgMSkgcmVzID0gcmVzICogYSAlIG1vZDsKICAgICAgICBhID0gYSAqIGEgJSBtb2Q7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCnZvaWQgZ2lhaSgpIHsKICAgIGludCB1ID0gYS5zaXplKCksIHYgPSBiLnNpemUoKTsKICAgIGEgPSAiICIgKyBhOwogICAgYiA9ICIgIiArIGI7CgogICAgZlswXVswXSA9IGdbMF1bMF0gPSAxOwogICAgRk9SKGksIDEsIG1pbih1LCBsKSkgRk9SKGosIDAsIDEpIGlmIChmW2kgLSAxXVtqXSkKICAgIEZPUihrLCAwLCAoaiA/IDI1IDogYVtpXSAtICdhJykpIGFkZChmW2ldW2ogfCAoayA8IChhW2ldIC0gJ2EnKSldLCBmW2kgLSAxXVtqXSk7CgogICAgRk9SKGksIDEsIG1pbih2LCBsKSkgRk9SKGosIDAsIDEpIGlmIChnW2kgLSAxXVtqXSkKICAgIEZPUihrLCAwLCAoaiA/IDI1IDogYltpXSAtICdhJykpIGFkZChnW2ldW2ogfCAoayA8IChiW2ldIC0gJ2EnKSldLCBnW2kgLSAxXVtqXSk7CgogICAgbGwgTCwgUjsKICAgIGlmICh2IDwgbCkgUiA9IGdbdl1bMV0gKiBwdygyNiwgbCAtIHYpICUgbW9kOwogICAgZWxzZSBpZiAodiA9PSBsKSBSID0gZ1tsXVsxXTsKICAgIGVsc2UgaWYgKHYgPiBsKSBSID0gKGdbbF1bMF0gKyBnW2xdWzFdKSAlIG1vZDsKCiAgICBpZiAodSA8IGwpIEwgPSBmW3VdWzFdICogcHcoMjYsIGwgLSB1KSAlIG1vZDsKICAgIGVsc2UgaWYgKHUgPj0gbCkgTCA9IChmW2xdWzBdICsgZltsXVsxXSkgJSBtb2Q7CgogICAgY291dCA8PCAoUiAtIEwgKyBtb2QpICUgbW9kOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICAjZGVmaW5lIG5hbWUgInN0cmluZ3MiCgogICAgaWYgKGZvcGVuKG5hbWUiLmlucCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKG5hbWUiLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4obmFtZSIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIG5oYXAoKTsKICAgIGdpYWkoKTsKCiAgICByZXR1cm4gMDsKfQo=