#include<stdio.h>
int main() {
int year, weishu, arr[10] = {0}, b = 0, temp = 0, sum = 0;
// 输入年份和位数
scanf("%d %d", &year, &weishu);
// 从输入的年份开始,逐年检查
for (int i = year; ; i++) {
temp = i;
// 取变量year中的每一位,作为数组的下标存入数组
// 因为题意要求年份最大为3000,最大为四位数,所以循环四次
// 一个数求余数是取个位,整除10是去掉个位
for (int h = 0; h < 4; h++) {
b = temp % 10; // 取当前数字的个位数
arr[b]++; // 将对应数组位置的值加1
temp = temp / 10; // 去掉当前数字的个位数
}
// 计算数组中不同数字的总个数
for (int j = 0; j < 10; j++) {
if (arr[j] != 0)
sum++; // 如果数组中的某个位置不为0,说明该数字出现过,sum加1
}
// 如果数组中不同数字的总个数和目标个数相等,进行输出
if (sum == weishu) {
printf("%d %04d", i - year, i); // 输出相差的年数和目标年份
break; // 找到目标年份后,跳出循环
}
// 将数组和数字总个数初始化为0,以便下一次循环使用
for (int i = 0; i < 10; i++) {
arr[i] = 0;
}
sum = 0;
}
return 0;
}