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++14 (GCC 5.4.1) (judge verdict: Accepted)

#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#define ll long long
#define re register
#define rint register int
#define isdight(c) (c<='9'&&c>='0')
using namespace std;
inline int read()
{
	int x=0;register char c=getchar();int f=1;
	for(;!isdight(c);c=getchar()) if(c=='-') f=-1;
	for(;isdight(c);c=getchar()) x=(x<<1)+(x<<3)+(c^48);
	return x*f;
}
template <typename ty> inline void write(ty x)
{
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x/10);
	putchar(x%10+48);
}
const int N = 1000;
ll a,b,c;

int main()
{
	cin >> a >> b;
	printf("%lld",max(a+b,max(a-b,a*b)));
}