#include<iostream>
using namespace std;

int a[11];  // 数字卡片的数量,0~9,共10个数字
// a[0]表示数字0的卡片数量,a[1]表示数字1的卡片数量,以此类推

int main(){
    // 初始化数字卡片数量为2021
    for(int i=0;i<10;i++)
        a[i]=2021;

    int cnt=1;  // 当前要拼的数从1开始,cnt表示当前数
    while(1){
        int x=cnt;
        // 尝试用手中的数字卡片拼出数字cnt
        while(x){
            // 如果某个数位上的数字卡片数量不足,那么就无法拼出数字cnt
            if(a[x%10]==0){
                // 输出最大能够拼出的数字cnt-1
                cout<<cnt-1<<endl;
                return 0;
            }
            // 使用数字卡片x%10
            a[x%10]--;
            // 转到下一位数位
            x/=10;
        }
        // 如果可以拼出当前数字cnt,那么继续拼下一个数
        cnt++;
    }
}