You are given a positive (greater than zero) integer n.

You have to represent n as the sum of integers (possibly negative) consisting only of ones (digits '1'). For example, 24 = 11 + 11 + 1 + 1 and 102 = 111 - 11 + 1 + 1. 

Among all possible representations, you have to find the one that uses the minimum number of ones in total.

Input

The single line contains one integer n (1 ≤ n < 10^{50}).

Output

Print one integer x — the minimum number of ones, such that there exist a representation of n as the sum of integers (possibly negative) that uses x ones in total.

Examples

Input


24


Output


6


Input


102


Output


7
'''
Author: Wa-Automaton
Time: 202102162 14:44:00 UTC+8

Website: codeforces.com
Contest: Educational Codeforces Round 104 (Rated for Div. 2)
Problem: F. Ones

Result:
Solution:

More:
    Thanks RUSH_D_CAT. 
    Learn it from RUSH_D_CAT's solution 107487575.

'''
n = int(input())

dp = {}

def calc(x):
    # print(x)
    # if x < 10 : return x # wa
    if 0 == x : return 0   # ok
    if x in dp.keys() : return dp[x]
    
    l = len(str(x))
    u = 10 ** l // 9
    if x < u : u = u // 10; l -= 1
    v = u * 10 + 1
    
    u1 = calc(x % u) + (x // u * l)
    # u2 = calc(v - x) + l + 1   # tle
    u2 = calc((v - x) % u) + (l + 1) + ((v - x) // u * l) # ok
    
    res = min(u1, u2)
    dp[x] = res
    # print(x, u, v, u1, u2, res)
    return res
    
print(calc(n))