import std; void main(){ auto S=readln.chomp; auto L=S.length; auto q=DList!(string)([S]); bool[string] used; used[S]=true; auto result=1; while(!q.empty){ auto s=q.front; q.removeFront; //stderr.writeln(s); int[] zo; int[] oz; for(auto i=0;i<L-1;i++){ if(s[i]=='0'&&s[i+1]=='1'){ zo~=i; } if(s[i]=='1'&&s[i+1]=='0'){ oz~=i; } } //stderr.writeln(zo); //stderr.writeln(oz); foreach(i;zo){ foreach(j;oz){ if((i-j).abs==1)continue; char[] c=s.dup; c[i]='1'; c[i+1]='0'; c[j]='0'; c[j+1]='1'; string cs=c.idup; if(cs in used)continue; q.insert(cs); used[cs.idup]=true; result++; } } } writeln(result); }