#include<bits/stdc++.h>
using namespace std;
#define M 100005
#define mo 1000000007
int n,ans;
char s[M];
int pre[M][2],f[M],g[M];
void work() {
    for(int i=n;i>=1;i--)
	{
	    if(s[i]=='a')
		{
		    pre[i-1][0]=i;
		    pre[i-1][1]=pre[i][0];
		    if(i==n) pre[i-1][1]=-1;
		}
	    else
		{
		    pre[i-1][1]=i;
		    pre[i-1][0]=pre[i][1];
		    if(i==n) pre[i-1][0]=-1;
		}
	}
    f[0]=1;
    for(int i=0;i<n;i++)
	{
	    if(pre[i][0]!=-1) f[pre[i][0]]=(f[pre[i][0]]+f[i])%mo;
	    if(pre[i][1]!=-1) f[pre[i][1]]=(f[pre[i][1]]+f[i])%mo;
	}
    for(int i=n;i>=1;i--) g[i]=(g[i+1]+(s[i]=='a'?1:2))%3;
    for(int i=1;i<=n;i++) if(!g[i+1]) ans=(ans+f[i])%mo;
    cout<<ans<<'\n';
}
int main()
{
    int tp=0;
    scanf("%s",s+1);
    n=strlen(s+1);
    for(int i=1;i<=n;i++) if(s[i]==s[i-1]) tp=1;
    if(tp) work();
    else cout<<1<<'\n';
    return 0;
}