/*
ID: fniksic001
LANG: C
PROG: runround
*/

#include <stdio.h>

unsigned int m;
FILE *in,*out;

int check(unsigned int a) {
	unsigned int digit[9],nd=0,digits=0,flag=0,next=0;
	
	while (a) {
		digit[nd]=a%10;
		if (!digit[nd]) return 0;
		if (digits & 1<<(digit[nd]-1)) return 0;
		else digits=digits | 1<<(digit[nd]-1);
		nd++;
		a/=10;
	}

	do {
//		printf("(%d+%d)%%%d=",next,digit[nd-next-1],nd);
		next+=digit[nd-next-1];
		next%=nd;
//		printf("%d => ",next);
		if (flag & 1<<next) return 0;
		else flag=flag | 1<<next;
//		printf("(flag=%d) ",flag);
	} while (flag!=(1<<nd)-1);

//	printf("(flag=%d) ",flag);

//	if (next) return 0;
//	else return 1;
	return 1;
}

int main(void) {
	in=fopen("runround.in","r");
	out=fopen("runround.out","w");
	
	fscanf(in,"%d",&m);
	while (!check(++m));
	fprintf(out,"%u\n",m);

	fclose(in);
	fclose(out);
	
	return 0;
}
