import sys

def main():
    N, K = map(int, sys.stdin.readline().strip().split())
    s = sys.stdin.readline().strip()
    digits = list(s)

    best_cost = float('inf')
    best_string = None

    for target in range(10):
        t = str(target)
        cur = digits[:]  # 当前尝试得到的新串
        cnt = s.count(t)

        if cnt >= K:
            cost = 0
            candidate = ''.join(cur)
        else:
            need = K - cnt
            cost = 0

            for diff in range(1, 10):
                if need == 0:
                    break

                # 先改比 target 大的数:为了字典序更小,优先改前面的
                bigger = target + diff
                if bigger <= 9:
                    ch = str(bigger)
                    for i in range(N):
                        if need == 0:
                            break
                        if cur[i] == ch:
                            cur[i] = t
                            cost += diff
                            need -= 1

                if need == 0:
                    break

                # 再改比 target 小的数:为了字典序更小,优先改后面的
                smaller = target - diff
                if smaller >= 0:
                    ch = str(smaller)
                    for i in range(N - 1, -1, -1):
                        if need == 0:
                            break
                        if cur[i] == ch:
                            cur[i] = t
                            cost += diff
                            need -= 1

            candidate = ''.join(cur)

        if cost < best_cost or (cost == best_cost and candidate < best_string):
            best_cost = cost
            best_string = candidate

    print(best_cost)
    print(best_string)

if __name__ == "__main__":
    main()