/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

abstract class Node {
	abstract double evaluate();
}

class ValueNode extends Node {
	double value;
	
	public ValueNode(double value) {
		this.value = value;
	}
	
	double evaluate() {
		return value;
	}
}

abstract class OpNode extends Node {
	Node left;
	Node right;
	
	public OpNode(Node left, Node right) {
		this.left = left;
		this.right = right;
	}
}

class MultiplicationNode extends OpNode {
	public MultiplicationNode(Node left, Node right) {
		super(left, right);
	}
	
	@Override
	double evaluate() {
		return left.evaluate() * right.evaluate();
	}
}

class AdditionNode extends OpNode {
	public AdditionNode(Node left, Node right) {
		super(left, right);
	}
	
	@Override
	double evaluate() {
		return left.evaluate() + right.evaluate();
	}
}

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		Node node = new AdditionNode(
		    new ValueNode(1),
		    new MultiplicationNode(
		        new ValueNode(2),
		        new ValueNode(3)
		    )
		);
		
		System.out.println(node.evaluate());
	}
}