#include <bits/stdc++.h>
#define rep(i,n) for ((i)=1;(i)<=(n);(i)++)
#define foreach(c,it) for (__typeof((c).begin()) it=(c).begin();it!=(c).end();++it)
using namespace std;
const int mod=1e9+7;
int n,m,i,j,s[200005],lst[3],f[200005];
string st;
int main(){
	cin>>st;
	n=st.size();st=" "+st;
	rep(i,n){
		if(st[i]-1!=((st[1]-1)^((i-1)&1))) break;
	}
	if(i>n){
		puts("1");
		return 0;
	}
	rep(i,n){
		s[i]=(s[i-1]+(st[i]&1)+1)%3;
	}
	f[0]=1;
	lst[0]=lst[1]=lst[2]=n+1;
	rep(i,n){
		if(s[i]) f[i]=1;
		for(j=0;j<3;j++)if(s[i]!=j){
			f[i]=(f[i]+f[lst[j]])%mod;
		}
		lst[s[i]]=i;
	}
	printf("%d\n",f[lst[s[n]]]);
	return 0;
}