import java.util.Scanner; import java.*; import java.io.*; import java.lang.String; import java.util.*; public class result { public static void main(String[] args) { for(;;) { char in = 0;; String s = ""; try{ while(in != '\n'){ in = (char)System.in.read(); if(in != '\n') s += in; } }catch(IOException e){} if(!s.equals("END")){ if(!s.equals("")){ int max = findMax(s); int min = findMin(s); if(min > max) { int pom = min; min = max; max = pom; } System.out.println(min+" "+max); } } else { break; } } } private static List splitChar(String s, char c) { List list = new ArrayList(); String retez = ""; for(int i=0; i<=s.length(); i++) { if(i == s.length() || s.charAt(i) == c) { list.add(retez); retez = ""; } else{ retez += s.charAt(i); } } return list; } private static int findMax(String s) { List pole = splitChar(s,'*'); int max = 0; int key = 0; for(String str : pole) { int pom = 0; List plus = splitChar(str,'+'); for(String ss : plus) { pom += Integer.parseInt(ss); } if(key == 0) { max = pom; } else { max = max * pom; } key++; } return max; } private static int findMin(String s) { List pole = splitChar(s,'+');; int min=0; for(String str : pole) { List krat = splitChar(str,'*'); int pom = 0; int key = 0; for(String ss : krat) { if(key == 0) { pom = Integer.parseInt(ss); } else { pom *= Integer.parseInt(ss); } key++; } min += pom; } return min; } }