/*
    題意:給出一個串,求最小的一個正數,該數不能是該串的子串 len<=10^5
    一個串的子串有C(len,2)個,感覺很多。但是長度越大,其串的個數會越小
    長度為1時,串的個數高達10^5,只要不是特殊數據,絕對能把[0,9]這個區間鋪滿
    同理
    長度為2時,串的個數也高達10^5,也能把區間[0,99]鋪滿
    
    長度為5時,串的個數10^5,有可能鋪滿區間[0,99999]
    但長度為6時,串的個數10^5,絕對不可能鋪滿區間[0,999999]

    所以枚舉起點,枚舉長度(1到6)將得到的整數標記visit過
    最后從1開始(不是0),遇到第一個沒被標記過的就是最小的正數了!

    這題一開始估計的時候,子串好大!
    但是細心推一下,發現長度越大,其個數越小,分布也越稀疏!
    而我們就是要求那些稀疏的沒被訪問過的位置了
*/

#include
<cstdio>
#include
<cstring>

const int MAXN = 1000000;

bool vi[MAXN];
char str[MAXN];

int main()
{
    
//freopen("in","r",stdin);
    while(~scanf("%s",str))
    
{
        memset(vi,
0,sizeof(vi));
        
for(int i=0;str[i];i++)
        
{
            
int tmp = 0;
            
for(int j=1;j<=6&&str[i+j-1];j++)
            
{
                tmp
=10*tmp+str[i+j-1]-'0';
                vi[tmp]
=1;
            }

        }

        
for(int i=1;i<MAXN;i++)
            
if(!vi[i]){printf("%d\n",i);break;}
    }

    
return 0;
}