#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int MOD = 1e9 + 7;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int x, y;
    cin >> x >> y;
    int add = x + y;
    int sub = x - y;
    int into = x * y;
    if (add >= sub && add >= into) {
        cout << add << "\n";
    } else if (sub >= add && sub >= into) {
        cout << sub << "\n";
    } else {
        cout << into << "\n";
    }

}











#include <bits/stdc++.h>
#include <set>
#include <numeric>
#define rep(i,n) for (int i=0; i < (n); ++i)
#define all(a) a.begin(), a.end()
using ll = long long;
using namespace std;
 
// ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }


// const double PI = acos(-1);
// int gcd(int x, int y) { return (x % y)? gcd(y, x % y): y; }
// int a[12][12];



void solve() {
  int x,y;
  cin >> x >> y;
  cout << max({x+y, x-y, x*y})<< endl;

}


int main() {
  solve();
  return 0;
}