#include<bits/stdc++.h>
using namespace std;
const int N=100010;
const int p=1e9+7;
char s[N];
long long dp[N];
int last[3];
#define DP(x) (~(x)?dp[(x)]:0)
int main(){
	scanf("%s",s); int len=strlen(s);
	bool flag=0;
	for(int i=1; i<len; ++i)if(s[i]==s[i-1])flag=1;
	if(!flag)return puts("1"),0;
	dp[0]=1; int tmp=0; last[1]=last[2]=-1;
	for(int i=1; i<=len; ++i){
		(tmp+=(s[i-1]=='a'?1:2))%=3;
		if(tmp==0&&i<len)dp[i]=1;
		(dp[i]+=DP(last[0])+DP(last[1])+DP(last[2])-DP(last[tmp]))%=p;
		last[tmp]=i;
	}
	printf("%lld",dp[len]);
	return 0;
}