/*
    题意:给出一个串,求最小的一个正数,该数不能是该串的子串 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;
}