#if os(Linux)
    import Glibc
#else
    import Foundation
    import Darwin
#endif

#if swift(>=4.0)
func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

prefix operator *
prefix func * <T> (a: [T]) -> (T, T) { return (a[0], a[1]) }
prefix func * <T> (a: [T]) -> (T, T, T) { return (a[0], a[1], a[2]) }
#else
func readInts() -> [Int] {
    return readLine()!.split(" ").map { Int($0)! }
}

prefix operator * {}
prefix func * <T> (a: [T]) -> (T, T) { return (a[0], a[1]) }
prefix func * <T> (a: [T]) -> (T, T, T) { return (a[0], a[1], a[2]) }

extension String: CollectionType {}
#endif


let (A, B) = *readInts()

print(max(A + B, A - B, A * B))
