#include <bits/stdc++.h>

const int N = 100054, mod = 1000000007;

int n;
int f[N], S[N];
char s[N];

inline void add(int &x, const int y) {x += y - mod, x += x >> 31 & mod;}

int main() {
	int i, B[3] = {1}; bool flag = false;
	scanf("%s", s), n = strlen(s);
	for (i = 1; i < n && s[i] != s[i - 1]; ++i);
	if (i == n) return puts("1"), 0;
	for (*f = i = 1; i <= n; ++i)
		S[i] = (S[i - 1] + s[i - 1]) % 3, f[i] = f[i - 1] + !S[i],
		add(f[i], B[S[i] ^ S[i - 1] ^ 3]), B[S[i]] = f[i];
	if (!S[n]) add(f[n], mod - 1);
	printf("%d\n", f[n]);
	return 0;
}