s = eval(input())

l = len(s)-1

ans = 0



for j in range(2**l):

  L = 0

  for i in range(l):

    if (j>>i)&1 == 1:

      m = s[L:i+1]

      ans += int(m)

      L = i+1

  ans += int(s[L:])

print(ans) 
def dfs(i, f):

    if i == n - 1:

        return sum(list(map(int, f.split("+"))))

    # 式 f の末尾に "+" を追加するかしないかして次の数字を追加

    return dfs(i + 1, f + s[i + 1]) + dfs(i + 1, f + "+" + s[i + 1])

s = eval(input())

n = len(s)

print((dfs(0, s[0])))  
s = eval(input())
l = len(s) - 1
ans = 0
for j in range(2**l):
    L = 0
    for i in range(l):
        if (j >> i) & 1 == 1:
            m = s[L : i + 1]
            ans += int(m)
            L = i + 1
    ans += int(s[L:])
print(ans)

def dfs(i, f):
    if i == n - 1:
        return sum(list(map(int, f.split("+"))))
    # 式 f の末尾に "+" を追加するかしないかして次の数字を追加
    return dfs(i + 1, f + s[i + 1]) + dfs(i + 1, f + "+" + s[i + 1])


s = eval(input())
n = len(s)
print((dfs(0, s[0])))

+def dfs(i, f): +    if i == n - 1: +        return sum(list(map(int, f.split("+")))) +    # 式 f の末尾に "+" を追加するかしないかして次の数字を追加 +    return dfs(i + 1, f + s[i + 1]) + dfs(i + 1, f + "+" + s[i + 1]) + + -l = len(s) - 1 -ans = 0 -for j in range(2**l): -    L = 0 -    for i in range(l): -        if (j >> i) & 1 == 1: -            m = s[L : i + 1] -            ans += int(m) -            L = i + 1 -    ans += int(s[L:]) -print(ans) +n = len(s) +print((dfs(0, s[0])))