#include <cstdio>
#include <iostream>
#include <queue>
#include <string>
#include <utility>
#include <set>
using namespace std;
typedef pair<string,int> P;
int main() {
	string str;
	while(cin>>str,str!="0") {
		queue<P> Q;
		Q.push(P(str,0));
		set<string> S;
		S.insert(str);
		while(!Q.empty()) {
			P p=Q.front(); Q.pop();
			bool Flag=true;
			for(int i=0;i<p.first.size()-1;i++) {
				if(p.first[i]!=p.first[i+1]) {Flag=false;break;}
			}
			if(Flag) {printf("%d\n",p.second); break;}
			for(int i=0;i<p.first.size()-1;i++) {
				string tmp=p.first;
				if((p.first[i]=='r' && p.first[i+1]=='g') || (p.first[i+1]=='r' && p.first[i]=='g')) {
					tmp[i]=tmp[i+1]='b';
				}else if((p.first[i]=='r' && p.first[i+1]=='b') || (p.first[i+1]=='r' && p.first[i]=='b')) {
					tmp[i]=tmp[i+1]='g';
				}else if((p.first[i]=='b' && p.first[i+1]=='g') || (p.first[i+1]=='b' && p.first[i]=='g')) {
					tmp[i]=tmp[i+1]='r';
				}else continue;
				if(S.find(tmp)==S.end()) {
					S.insert(tmp);
					Q.push(P(tmp,p.second+1));
				}
			}
		}
	}
}