#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e4 + 5;
const int K = 7;
const int A = 26;
const int M = 1e9 + 7;
int sLen;
string s;
int dp[N][K][2];
int solve(int idx, int mod, bool isSmall){
if(idx == sLen){
return (mod == 0);
}
if(dp[idx][mod][isSmall] != -1)
return dp[idx][mod][isSmall];
int ans = 0;
int id = s[idx] - 'a';
int maxId = id + 1;
if(isSmall) maxId = A;
for(int i = 0; i < maxId; i++){
ans += solve(idx + 1, (mod + i) % K, isSmall | (i < id));
if(ans >= M)
ans -= M;
}
return dp[idx][mod][isSmall] = ans;
}
int main()
{
ios_base ::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> s;
sLen = (int)s.size();
memset(dp, -1, sizeof(dp));
cout << solve(0, 0, 0);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBOID0gMWU0ICsgNTsKY29uc3QgaW50IEsgPSA3Owpjb25zdCBpbnQgQSA9IDI2Owpjb25zdCBpbnQgTSA9IDFlOSArIDc7CmludCBzTGVuOwpzdHJpbmcgczsKaW50IGRwW05dW0tdWzJdOwoKaW50IHNvbHZlKGludCBpZHgsIGludCBtb2QsIGJvb2wgaXNTbWFsbCl7CiAgICBpZihpZHggPT0gc0xlbil7CiAgICAgICAgcmV0dXJuIChtb2QgPT0gMCk7CiAgICB9CiAgICBpZihkcFtpZHhdW21vZF1baXNTbWFsbF0gIT0gLTEpCiAgICAgICAgcmV0dXJuIGRwW2lkeF1bbW9kXVtpc1NtYWxsXTsKCiAgICBpbnQgYW5zID0gMDsKICAgIGludCBpZCA9IHNbaWR4XSAtICdhJzsKCiAgICBpbnQgbWF4SWQgPSBpZCArIDE7CiAgICBpZihpc1NtYWxsKSBtYXhJZCA9IEE7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG1heElkOyBpKyspewogICAgICAgIGFucyArPSBzb2x2ZShpZHggKyAxLCAobW9kICsgaSkgJSBLLCBpc1NtYWxsIHwgKGkgPCBpZCkpOwogICAgICAgIGlmKGFucyA+PSBNKQogICAgICAgICAgICBhbnMgLT0gTTsKICAgIH0KICAgIHJldHVybiBkcFtpZHhdW21vZF1baXNTbWFsbF0gPSBhbnM7Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZSA6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOwogICAgY2luID4+IHM7CgogICAgc0xlbiA9IChpbnQpcy5zaXplKCk7CgogICAgbWVtc2V0KGRwLCAtMSwgc2l6ZW9mKGRwKSk7CiAgICBjb3V0IDw8IHNvbHZlKDAsIDAsIDApOwpyZXR1cm4gMDsKfQo=