

'''

< 곱하기 혹은 더하기 >



문제 :

각 자리가 숫자로만 이루어진 문자열 S가 주어졌을 때
왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'X' 혹은 '+' 연산자를 넣어
결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오

단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리,
모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정한다.




입력 :

1. 문자열 S [1 / 20]




출력 :

문자열 S를 조작하여 만들 수 있는 최대값을 출력한다.




아이디어 :

완전 탐색으로 하면 최대 2^ 19제곱 만큼의 경우의 수가 발생한다.
1024*1024/2 이므로 약 50만의 경우의 수이다.
따라서 완전탐색으로 구할 수 있다.
아니면 순서대로 더하거나 곱한 것 중에 큰 값을 다음 값과 곱하거나 더해도될 것 같다.

n중 for문이 발생하므로 재귀함수를 사용해야겠다.
20개의 for문을 사용할 수 있지만
재귀함수를 쓰는 것이 좀 더 간결하기 때문에 재귀함수를 사용하겠다.


설계 :

1. 문자열을 입력 받는다.
2. 재귀함수로 2^19개의 원소를 리스트에 넣는다.
3. 라스트의 최대값을 구한다.
4. 최대값을 출력한다.


피드백 :
10억 연산이상 초과하면 안된다는 것을 숙지해두자

파이썬 3.7은 1초에 2000만번 연산을 수행하고
Pypy3는 1초에 2000만번에서 1억번 연산을 수행한다.


'''


# 내가 짠 코드 :

import sys
input_sys=sys.stdin.readline
from collections import deque
import heapq
import copy


S = list(map(int,input()))




def recur(S,num,sum):

    if num+1 == len(S):

        return sum
    else :
        temp = max(sum+S[num+1],sum*S[num+1])

        return recur(S,num+1,temp)


result=recur(S,0,S[0])


print(result)


























