H. 保险箱

传统 1000 ms 256 MiB
标准 IO
文本比较

题目描述

保险箱 safe

某保险箱的密码盘由一排 nn 个滚轮构成,每个滚轮上都有 0,1,,90,1,\cdots,9 这十个数。

每次操作都可以选择任意一个滚轮,将它指示的数加 11 或减 11,但结果不得超出 [0,9][0,9] 的范围。

注意:在一次操作中,0\boldsymbol{0} 只能加 1\boldsymbol{1} 变成 1\boldsymbol{1}9\boldsymbol{9} 只能减 1\boldsymbol{1} 变成 8\boldsymbol{8}0\boldsymbol{0}9\boldsymbol{9} 之间无法直接切换。

给定初始状态(初始时 nn 个滚轮各自指示的数)和整数 kk,求满足以下要求的目标状态:

  • 目标状态中存在一个数出现了至少 k\boldsymbol{k}
  • 在满足上一条要求的前提下,从初始状态把密码盘调到目标状态所需的操作次数最少。
  • 在满足前两条要求的前提下,目标状态的字典序最小。

对于长度相等的由数字字符构成的字符串,字典序比较等价于将其视为十进制整数后的数值比较。

输出从初始状态把密码盘调到目标状态所需的最少操作次数,以及满足要求的目标状态。

输入格式

第一行两个整数 n,kn,k2kn2×1052\le k\le n\le2\times10^5)。

第二行一个长度为 nn 的由数字字符构成的字符串,表示初始状态。

输出格式

第一行一个整数,表示从初始状态把密码盘调到目标状态所需的最少操作次数。

第二行一个长度为 nn 的由数字字符构成的字符串,表示满足要求的目标状态。

样例

样例 1

输入

6 5
898196

输出

4
888188

样例 2

输入

3 2
533

输出

0
533

样例 3

输入

10 6
0001112223

输出

3
0000002223