Problem:
Score : 100 points

Problem Statement

We have two integers: A and B.

Print the largest number among A + B, A - B, and A \times B.

Constraints

All values in input are integers.

-100 \leq A,\ B \leq 100

Input

Input is given from Standard Input in the following format:

A B

Output

Print the largest number among A + B, A - B, and A \times B.

Sample Input 1

-13 3

Sample Output 1

-10

The largest number among A + B = -10, A - B = -16, and A \times B = -39 is -10.

Sample Input 2

1 -33

Sample Output 2

34

The largest number among A + B = -32, A - B = 34, and A \times B = -33 is 34.

Sample Input 3

13 3

Sample Output 3

39

The largest number among A + B = 16, A - B = 10, and A \times B = 39 is 39.

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

public class Program
{
	static void Main(string[] args)
	{
		new Program();
	}

	private bool isDebug = false;
	private IReader reader;

	public Program()
	{
		reader = new ConsoleReader();
		if (isDebug) {
			reader = new FileReader("test.txt");
		}

		int[] v = reader.ReadLine().Split(' ').Select(x => int.Parse(x)).ToArray();
		List<int> valueList = new List<int>();
		valueList.Add(v[0] + v[1]);
		valueList.Add(v[0] - v[1]);
		valueList.Add(v[0] * v[1]);
		int res = valueList.Max();
		Console.WriteLine(res);
	}
}

// ------------------------------------------------------------------
public interface IReader
{
	string ReadLine();
}

//
public class ConsoleReader : IReader
{
	string IReader.ReadLine()
	{
		return Console.ReadLine();
	}
}

//
public class FileReader : IReader
{
	private StreamReader streamReader;

	public FileReader(string path)
	{
		try {
			streamReader = new StreamReader(path, Encoding.UTF8);
		}
		catch (Exception ex) {
			Console.WriteLine(ex);
		}
	}

	string IReader.ReadLine()
	{
		return streamReader.ReadLine();
	}
}