#include <iostream>

using namespace std;
int niz0[100005];
int niz1[100005];
int nizic[7];
int nizac[7];
int brojilo=10;
bool ohyeahniz[11];
bool daLiJeCvrst(int arr[],int sz){
    bool bo=false;
    bool nizojilo[10];
    for(int i=0;i<10;i++)
        nizojilo[i]=false;
    int br=arr[0];
    nizojilo[br]=true;
    for(int i=1;i<sz;i++){
      if(nizojilo[arr[i]]==false){
            nizojilo[arr[i]]=true;
            br=arr[i];
    }else{
        if(arr[i]!=br){
            bo=true;
            break;
        }

    }




    }
    return bo;
}
void funkcija(int arr[],int poz,int sz,int szniz,int br){
    if(poz>sz && daLiJeCvrst(arr,sz)==false){
        if(br<brojilo)
            brojilo=br;


    }else{
        for(int i=0;i<szniz;i++){
            int niz[10];
            for(int j=0;j<=sz;j++){
                niz[j]=arr[j];

            }
            niz[poz]=nizic[i];
            int br1=br;
            if(nizic[i]!=arr[poz])
                br1++;
            funkcija(niz,poz+1,sz,szniz,br1);
        }


    }



}

int main()
{
     string str;

    int arr[6];
    //for(int i=0;i<6;i++)
    //  cin>>arr[i];

  // cout<<daLiJeCvrst(arr,6);
    getline(cin, str);


    int l0=0;
    int l1=0;
    int r0=0;
    int r1=0;

    int vel=str.size();
    if(str.size()>1)  {
        int zbir0=0;
        int zbir1=0;
        for(int i=0;i<vel;i++){
            if(str[i]=='0'){
                zbir0++;
            }else{
                zbir1++;
            }
          niz0[i]=zbir0;
          niz1[i]=zbir1;


    }

        int mini=100005;

        for(int i=0;i<vel-1;i++){
            l0=niz0[i];
            l1=niz1[i];
            r0=niz0[vel-1]-niz0[i];
            r1=niz1[vel-1]-niz1[i];
            if(l0+r1<mini)
                mini=l0+r1;
            if(l1+r0<mini)
                mini=l1+r0;
            if(l0+r0<mini)
                mini=l0+r0;
            if(l1+r1<mini)
                mini=l1+r1;

            if(niz0[vel-1]==0)
                mini=0;
            if(niz1[vel-1]==0)
                mini=0;

        }
        cout<<mini;





    }else{
    for(int i=0;i<11;i++){
        ohyeahniz[i]=false;


    }
        for(int i=0;i<vel;i++){
            nizac[i]=str[i]-'0';
           }
           cout<<endl;
        for(int i=0;i<vel;i++){
            cout<<nizac[i];

        }
     for(int i=0;i<vel;i++){
            ohyeahniz[nizac[i]]=true;
           }
        int brojac=0;
    for(int i=0;i<10;i++){
            if(ohyeahniz[i]==true){
                nizic[brojac]=i;
                brojac++;

            }

           }
        cout<<endl;
         for(int i=0;i<brojac;i++){
            cout<<nizic[i];

        }
    cout<<endl;
    funkcija(nizac,0,vel-1,brojac,0);
    cout<<brojilo;











    }
    return 0;


}