当前没有测试数据。

循环数

题目描述

Y 同学对一种被称为“循环数”的正整数非常感兴趣。

一个正整数 XX 被称为“循环数”,当且仅当它同时满足以下所有条件:

  1. XX 的十进制表示中不包含数字 00
  2. XX 的十进制表示中没有任何两个相同的数字。
  3. 假设 XXKK 位,其十进制表示从左到右依次为 d1,d2,,dKd_1, d_2, \dots, d_K。我们定义一个在数位下标集合 {1,2,,K}\{1, 2, \dots, K\} 上的移动规则:若当前在第 ii 位(数字为 did_i),则向右移动 did_i 步。若移动超出了最右端,则折返至最左端继续循环移动。即下一个位置的下标 jj 的计算公式为:j=((i1+di)modK)+1j = ((i - 1 + d_i) \bmod K) + 1
  4. 从起点第 11 位开始,按照上述规则连续移动恰好 KK 次。在此过程中,要求经过的 KK 个位置互不相同(即每个数位必须恰好被访问一次),并且第 KK 次移动后的位置必须重新回到起点第 11 位。

例如,8136281362 是一个循环数(此时 K=5K=5):

  • 11 步:从第 11 位(数字 88)开始,移动 88 步,到达第 44 位(数字 66);
  • 22 步:从第 44 位(数字 66)开始,移动 66 步,到达第 55 位(数字 22);
  • 33 步:从第 55 位(数字 22)开始,移动 22 步,到达第 22 位(数字 11);
  • 44 步:从第 22 位(数字 11)开始,移动 11 步,到达第 33 位(数字 33);
  • 55 步:从第 33 位(数字 33)开始,移动 33 步,重新回到起点的第 11 位(数字 88)。 该数每个位置恰好被访问一次,且最后回到了起点,同时不含 00 且无重复数字。

现在,给定一个正整数 MM,请你编写程序帮助 Y 同学找出最小的、且严格大于 MM 的循环数 MM'

输入格式

第一行包含一个正整数 MM

输出格式

输出一行一个正整数,表示符合条件的最小循环数 MM'

样例

样例输入 #1

81361

样例输出 #1

81362

数据范围与约定

对于 100%100\% 的数据,保证 1M1091 \le M \le 10^9

数据保证必定存在满足条件的 MM',且 M2321M' \le 2^{32}-1。因为答案可能会超出 32 位有符号整数的表示范围,请使用 64 位整数类型进行计算与输出。

子任务编号 分值 MM \le 特殊性质
1 40 10510^5
2 60 10910^9