import java.util.Scanner;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.text.DecimalFormat;
import java.util.TreeMap;


public class BJJG
{
	public static void main(String args[])
	{
		new BJJG();
	}

	private ArrayList<String> tokens;
	private int token_idx;

	private TreeMap<Integer, String> out;

	public BJJG()
	{
		Scanner scan = new Scanner(System.in);

		tokens=new ArrayList<String>();

		while(scan.hasNextLine())
		{
			String line = scan.nextLine();
			addTokens(line);

		}

		//System.out.println(tokens.toString());

		token_idx=0;
		while(token_idx < tokens.size())
		{
			out=new TreeMap<Integer,String>();
			readItem();
			for(String o : out.values())
			{
				System.out.println(o);
			}
		}

		

	}



	private void addTokens( String str)
	{
		str = str.replace(")"," ) ");
		str = str.replace("("," ( ");

		StringTokenizer stok=new StringTokenizer(str, " \n");

		while(stok.hasMoreTokens())
		{
			tokens.add(stok.nextToken());
		}
		
	}

	private double readItem()
	{

		String open = tokens.get(token_idx); token_idx++;
		if (!open.equals("("))
		{
			System.err.println("Unexpected start token: " + open);
			return 0.0;
		}

		String type = tokens.get(token_idx); token_idx++;

		if (type.equals(")"))
		{
			token_idx = tokens.size();
			return 0.0;
		}

		if (type.equals("D"))
		{
			String mass_str = tokens.get(token_idx); token_idx++; token_idx++;
			double mass = Double.parseDouble(mass_str);
			return mass;
		}

		if (type.equals("B"))
		{
			String num_str = tokens.get(token_idx); token_idx++;
			String len_str = tokens.get(token_idx); token_idx++;

			double mass_left = readItem();
			double mass_right = readItem();

			token_idx++; //get past closing paren

			double total_len = Double.parseDouble(len_str);

			double len = total_len * mass_left / (mass_left + mass_right);

			len = Math.min(len, total_len - len);

			DecimalFormat df=new DecimalFormat("0.0");

			String o = "Bar " + num_str + " must be tied " + df.format(len) + " from one end.";

			int bar_num = Integer.parseInt(num_str);

			out.put(bar_num, o);

      return mass_left + mass_right;

		}

		System.err.println("Unknown type: " + type);
		return -1.0;

	}
}



