#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("inline")
#include<bits/stdc++.h>
using namespace std;
template < class T, class S> inline int DigitHist( T n, S res[ ] ) {
int i;
int len = 0 ;
for ( i= ( 0 ) ; i< ( 10 ) ; i++ ) {
res[ i] = 0 ;
}
while ( n) {
len++ ;
res[ n% 10 ] ++ ;
n / = 10 ;
}
return len;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int fg;
int sz;
int arr[ 1000 ] ;
int cnt[ 10 ] ;
class Solution{
public :
int nextBeautifulNumber( int n) {
if ( ! fg) {
int i;
fg = 1 ;
for ( i= ( 1 ) ; i< ( 1300000 ) ; i++ ) {
int j;
DigitHist( i,cnt) ;
for ( j= ( 0 ) ; j< ( 10 ) ; j++ ) {
if ( cnt[ j] && cnt[ j] ! = j) {
goto Lj4PdHRW;
}
}
arr[ sz++ ] = i;
Lj4PdHRW:;
}
}
return * lower_bound( arr, arr+ sz, n+ 1 ) ;
}
}
;
// cLay version 20211024-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int fg, sz, arr[1000], cnt[10];
//
// class Solution {
// public:
// int nextBeautifulNumber(int n) {
// if(!fg){
// fg = 1;
// rep(i,1,1.3d6){
// DigitHist(i,cnt);
// rep(j,10) if(cnt[j] && cnt[j] != j) break_continue;
// arr[sz++] = i;
// }
// }
// return *lower_bound(arr, arr+sz, n+1);
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJpbmxpbmUiKQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBTPiBpbmxpbmUgaW50IERpZ2l0SGlzdChUIG4sIFMgcmVzW10pewogIGludCBpOwogIGludCBsZW4gPSAwOwogIGZvcihpPSgwKTtpPCgxMCk7aSsrKXsKICAgIHJlc1tpXSA9IDA7CiAgfQogIHdoaWxlKG4pewogICAgbGVuKys7CiAgICByZXNbbiUxMF0rKzsKICAgIG4gLz0gMTA7CiAgfQogIHJldHVybiBsZW47Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgppbnQgZmc7CmludCBzejsKaW50IGFyclsxMDAwXTsKaW50IGNudFsxMF07CmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgbmV4dEJlYXV0aWZ1bE51bWJlcihpbnQgbil7CiAgICBpZighZmcpewogICAgICBpbnQgaTsKICAgICAgZmcgPSAxOwogICAgICBmb3IoaT0oMSk7aTwoMTMwMDAwMCk7aSsrKXsKICAgICAgICBpbnQgajsKICAgICAgICBEaWdpdEhpc3QoaSxjbnQpOwogICAgICAgIGZvcihqPSgwKTtqPCgxMCk7aisrKXsKICAgICAgICAgIGlmKGNudFtqXSAmJiBjbnRbal0gIT0gail7CiAgICAgICAgICAgIGdvdG8gTGo0UGRIUlc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFycltzeisrXSA9IGk7CiAgICAgICAgTGo0UGRIUlc6OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gKmxvd2VyX2JvdW5kKGFyciwgYXJyK3N6LCBuKzEpOwogIH0KfQo7Ci8vIGNMYXkgdmVyc2lvbiAyMDIxMTAyNC0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGludCBmZywgc3osIGFyclsxMDAwXSwgY250WzEwXTsKLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBuZXh0QmVhdXRpZnVsTnVtYmVyKGludCBuKSB7Ci8vICAgICBpZighZmcpewovLyAgICAgICBmZyA9IDE7Ci8vICAgICAgIHJlcChpLDEsMS4zZDYpewovLyAgICAgICAgIERpZ2l0SGlzdChpLGNudCk7Ci8vICAgICAgICAgcmVwKGosMTApIGlmKGNudFtqXSAmJiBjbnRbal0gIT0gaikgYnJlYWtfY29udGludWU7Ci8vICAgICAgICAgYXJyW3N6KytdID0gaTsKLy8gICAgICAgfQovLyAgICAgfQovLyAgICAgcmV0dXJuICpsb3dlcl9ib3VuZChhcnIsIGFycitzeiwgbisxKTsKLy8gICB9Ci8vIH07Cg==