import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class result {

	
	public static int vypocti(String vyraz){
		int val = 0;
		String[]vals = vyraz.split("\\+");
		for(String s : vals){
			int nv = 1;
			for(String z : s.split("\\*")){
				nv *= Integer.parseInt(z);
			}
			val+=nv;
		}
		
		return val;
	}
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));
		String line;
		while (!(line = reader.readLine()).equals("END")) {
			String lineB = line;
			int pos;
			//////////MAXIMUM////////////
			
			int poziceNuly;
			String levyOk = "";
			String pravyOk = "";
			String levyTest = "";
			String pravyTest = "";
			
			while((poziceNuly = line.indexOf("*0*"))!=-1){
				
				//////////LEVA/////
				String subl = line.substring(0, poziceNuly);
				if((pos = subl.lastIndexOf("+"))!=-1){	// najdu nejpravejsi +
					levyOk = subl.substring(0, pos);	
					if((pos = levyOk.lastIndexOf("*"))!=-1){	// kdyz tam bude i *
						levyOk = levyOk.substring(0, pos);
						levyTest = line.substring(pos+1, poziceNuly);
					}
					else{
						levyOk = "";
						levyTest = line.substring(0, poziceNuly);
					}
				}
				else{	// kdyz nalevo + neni
					levyOk = "";
					levyTest = line.substring(0, poziceNuly);
				}
				
		//////////PRAVA/////
				String subr = line.substring(poziceNuly+3);
				if((pos = subr.indexOf("+"))!=-1){	// najdu nejlevejsi +
					pravyOk = subr.substring(pos+1);	
					if((pos = pravyOk.indexOf("*"))!=-1){	// kdyz tam bude i *
						pravyOk = pravyOk.substring(pos+1);
						pravyTest = line.substring(poziceNuly+3, pos);
					}
					else{
						pravyOk = "";
						pravyTest = line.substring(poziceNuly+3);
					}
				}
				else{	// kdyz nalevo + neni
					pravyOk = "";
					pravyTest = line.substring(poziceNuly+3);
				}
				
				
				
				/////// odstraneni
				
				if(vypocti(levyTest) < vypocti(pravyTest)){
					// rusim levy
					line = levyOk + line.substring(poziceNuly+2);
					if(line.charAt(0)=='+' || line.charAt(0)=='*'){
						line = line.substring(1);
					}
				}
				else{
					// rusim pravy
					line = line.substring(0, poziceNuly+1) + pravyOk;
					if(line.charAt(line.length()-1)=='+' || line.charAt(line.length()-1)=='*'){
						line = line.substring(0, line.length()-1);
					}
				}
				
			}
			
			
			
			
			
			
			
			//////////// TADY UZ V TOM RETEZCI NENI *0*  ////////////////
			
			while((poziceNuly = line.indexOf("+0*"))!=-1){
				
				/*// najdu a zrusim levou cast
				
				String subl = line.substring(0, poziceNuly);
				if((pos = subl.lastIndexOf("+"))!=-1){	// najdu nejpravejsi +
					levyOk = subl.substring(0, poziceNuly+1);
					levyTest = line.substring(pos+1, poziceNuly);
				}
				else{	// kdyz nalevo + neni
					levyOk = "";
					levyTest = line.substring(0, poziceNuly);
				}
				//////ZRUSENI
				line = levyOk + line.substring(poziceNuly+2);
				if(line.charAt(0)=='+' || line.charAt(0)=='*'){
					line = line.substring(1);
				}
//				System.out.println("po *0+: "+line);*/
				
				line = line.substring(0, poziceNuly)+line.substring(poziceNuly+2);
			}
			
		
			
			/////////////TED UZ TAM NENI ANI *0+ ///////////
			
			
			while((poziceNuly = line.indexOf("*0+"))!=-1){
				
				/*// najdu a zrusim pravou cast
				
				String subr = line.substring(poziceNuly+3);
				if((pos = subr.indexOf("+"))!=-1){	// najdu nejlevejsi +
					pravyOk = subr.substring(pos+1);	
					if((pos = pravyOk.indexOf("*"))!=-1){	// kdyz tam bude i *
						pravyOk = pravyOk.substring(pos+1);
						pravyTest = line.substring(poziceNuly+3, pos);
					}
					else{
						pravyOk = "";
						pravyTest = line.substring(poziceNuly+3);
					}
				}
				else{	// kdyz nalevo + neni
					pravyOk = "";
					pravyTest = line.substring(poziceNuly+3);
				}
				
				// ZRUSENI (pravyho)
				line = line.substring(0, poziceNuly+1) + pravyOk;
				if(line.charAt(line.length()-1)=='+' || line.charAt(line.length()-1)=='*'){
					line = line.substring(0, line.length()-1);
				}*/
				
				line = line.substring(0, poziceNuly+1)+line.substring(poziceNuly+3);
			}
			
			///// serzrani nuly vlevo
			
			if(line.substring(0, 2).equals("0*")){
				if((pos = line.indexOf("+"))!=-1){ // pokud jsem nasel +
					line = line.substring(pos+1);
				}
				else{
					line = "0";
				}
			}
			
			
			///// serzrani nuly vpravo
			
			if(line.substring(line.length()-2).equals("*0")){
				if((pos = line.lastIndexOf("+"))!=-1){ // pokud jsem nasel +
					line = line.substring(0, pos);
				}
				else{
					line = "0";
				}
			}
			
			
			
			/////////////RETEZEC PRIPRAVEN
			
			
			//////////////MAXIMUM////////////
			
			
			String[] maxy = line.split("\\*");
			int[] imaxy = new int[maxy.length];
			for(int i = 0; i < maxy.length; i++){
				int val = 0;
				for(String num : maxy[i].split("\\+")){
					val+=Integer.parseInt(num);
				}
				imaxy[i] = val;
			}
			int maximum = 1;
			for(int val : imaxy){
				maximum *= val;
			}
			
			line = lineB;
			
			////////////////MINIMUM/////////////////
			//
			//  rozparsujem podle 0
			
			int minimum = 0;
			if(line.indexOf("*0*")!=-1){
				minimum = 0;
			}
			else if(line.startsWith("0*") || line.endsWith("*0")){
				minimum = 0;
			}
			else{
				pos = line.indexOf("+0*");
				if(pos!=-1) line = line.substring(0, pos);
				
				pos = line.lastIndexOf("*0+");
				if(pos!=-1) line = line.substring(pos+3);
			
			
			
			String[] miny = line.split("\\+");
			int[] iminy = new int[miny.length];
			for(int i = 0; i < miny.length; i++){
				int val = 1;
				for(String num : miny[i].split("\\*")){
					val*=Integer.parseInt(num);
				}
				iminy[i] = val;
			}
			
			for(int val : iminy){
				minimum += val;
			}
			}
			System.out.println(minimum+" "+maximum);
		}

	}

}
