#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;
const int N = 3e5;
char st[N];
int F[N], nxt[N];
int su, ans, n;
void ADD(int &t, int d)
{
    t += d;
    if (t >= MOD) t -= MOD;
}
int main()
{
    scanf("%s", st + 1);
    n = strlen(st + 1);
    for (int i = 1, j = 1; i <= n; ++ i)
    {
        j = max(j, i);
        while (j < n && st[j + 1] != st[j])
            j ++;
        for (int k = i; k <= j; ++ k) nxt[k] = j;
        i = j;
    }
    if (nxt[1] == n)
    {
        printf("%d\n", 1);
        return 0;
    }
    F[0] = 1;
    for (int i = 1; i <= n; ++ i)
    {
        ADD(F[i], F[i - 1]);
        ADD(F[nxt[i] + 1], F[i - 1]);
    }
    for (int i = n, su = 0; i >= 1; -- i)
    {
        if (su % 3 == 0) ADD(ans, F[i]);
        su += st[i] - 'a' + 1;
    }
    printf("%d\n", ans);
}
