#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll reduceAndPrintMax(ll Side1, ll Side2){
ll area1 = Side1*Side1;
ll area2 = Side2*Side2;
if((area1==area2)&&(area1%2!= 0)&&(area2%2!= 0)){
return area1;
}
while(area1%2==0){
area1/= 2;
}
while(area2%2==0){
area2/= 2;
}
if(area1==area2){
return area1;
}
return(area1>area2)?area1:area2;
}
int main(){
ll Side1, Side2;
cin>>Side1>>Side2;
cout<<reduceAndPrintMax(Side1, Side2);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxsIHJlZHVjZUFuZFByaW50TWF4KGxsIFNpZGUxLCBsbCBTaWRlMil7CgkKCWxsIGFyZWExID0gU2lkZTEqU2lkZTE7CgkKCWxsIGFyZWEyID0gU2lkZTIqU2lkZTI7CgkKCWlmKChhcmVhMT09YXJlYTIpJiYoYXJlYTElMiE9IDApJiYoYXJlYTIlMiE9IDApKXsKCQkKCQlyZXR1cm4gYXJlYTE7Cgl9CgkKCXdoaWxlKGFyZWExJTI9PTApewoJCQoJCWFyZWExLz0gMjsKCX0KCQoJd2hpbGUoYXJlYTIlMj09MCl7CgkJCgkJYXJlYTIvPSAyOwoJfQoJCglpZihhcmVhMT09YXJlYTIpewoJCQoJCXJldHVybiBhcmVhMTsKCX0KCQoKCXJldHVybihhcmVhMT5hcmVhMik/YXJlYTE6YXJlYTI7Cn0KCmludCBtYWluKCl7CgkKCWxsIFNpZGUxLCBTaWRlMjsKCQoJY2luPj5TaWRlMT4+U2lkZTI7CgkKCWNvdXQ8PHJlZHVjZUFuZFByaW50TWF4KFNpZGUxLCBTaWRlMik7CgkKCXJldHVybiAwOwoJCn0=