S="0"+input()
dig=len(S)


#dp[i][j]は下からi桁みたときの最小で，jは繰り下がりの有無
#自分が出す:a お釣り:b
inf=10**10
dp=[[inf,inf] for _ in range(dig+1)]
dp[0]=[0,0]

for i in range(dig):
    for j in range(2):
        if i==0 and j==1:
            break
        x=int(S[dig-i-1])
        for a in range(10):
            jj=0#次のj,繰り下がるかどうか
            b=(a-j)-x#j=1なら，繰り下がっているためaが1下がっている
            if b<0:
                b+=10
                jj=1
            dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b)
            
print(dp[-1][0])



 S="0"+input() S "0"+input() "0" input() input dig=len(S) dig len(S) len S inf=10**10 inf 10**10 10 10 [inf,inf] for _ in range(dig+1) for _ in range(dig+1) _ range(dig+1) range dig+1 dig 1 for _ in range(dig+1) [inf,inf] inf inf dp=[[inf,inf] for _ in range(dig+1)] dp [[inf,inf] for _ in range(dig+1)] dp[0]=[0,0] dp[0] dp 0 [0,0] 0 0 for i in range(dig):
    for j in range(2):
        if i==0 and j==1:
            break
        x=int(S[dig-i-1])
        for a in range(10):
            jj=0#次のj,繰り下がるかどうか
            b=(a-j)-x#j=1なら，繰り下がっているためaが1下がっている
            if b<0:
                b+=10
                jj=1
            dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b)
             i range(dig) range dig for j in range(2):
        if i==0 and j==1:
            break
        x=int(S[dig-i-1])
        for a in range(10):
            jj=0#次のj,繰り下がるかどうか
            b=(a-j)-x#j=1なら，繰り下がっているためaが1下がっている
            if b<0:
                b+=10
                jj=1
            dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b)
             j range(2) range 2 if i==0 and j==1:
            break
         i==0 and j==1 i==0 i 0 j==1 j 1 break x=int(S[dig-i-1]) x int(S[dig-i-1]) int S[dig-i-1] S dig-i-1 dig-i dig i 1 for a in range(10):
            jj=0#次のj,繰り下がるかどうか
            b=(a-j)-x#j=1なら，繰り下がっているためaが1下がっている
            if b<0:
                b+=10
                jj=1
            dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b)
             a range(10) range 10 jj=0 jj 0 b=(a-j)-x b (a-j)-x a-j a j x if b<0:
                b+=10
                jj=1
             b<0 b 0 b+=10 b 10 jj=1 jj 1 dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b) dp[i+1][jj] [i+1] dp i+1 i 1 jj min(dp[i+1][jj] , dp[i][j]+a+b) min dp[i+1][jj] [i+1] dp i+1 i 1 jj dp[i][j]+a+b dp[i][j]+a dp[i][j] [i] dp i j a b print(dp[-1][0]) print dp[-1][0] [-1] dp -1 0 dp=[[inf,inf] for _ in range(dig+1)] [[inf,inf] for _ in range(dig+1)] dp x=int(S[dig-i-1]) int(S[dig-i-1]) x b=(a-j)-x (a-j)-x b b+=10 10 b jj=1 1 jj dig=len(S) len(S) dig inf=10**10 10**10 inf jj=0 0 jj S="0"+input() "0"+input() S
S="0"+input()
dig=len(S)


#dp[i][j]は下からi桁みたときの最小で，jは繰り下がりの有無
#自分が出す:a お釣り:b
inf=10**10
dp=[[inf,inf] for _ in range(dig+1)]
dp[0]=[0,0]

for i in range(dig):
    for j in range(2):
        if i==0 and j==1:
            break
        x=int(S[dig-i-1])
        for a in range(10):
            jj=0#次のj,繰り下がるかどうか
            b=(a-j)-x#j=1なら，繰り下がっているためaが1下がっている
            if b<0:
                b+=10
                jj=1
            dp[i+1][jj]=min(dp[i+1][jj] , dp[i][j]+a+b)
            
print(dp[-1][0])




