//
#include<iostream>
#include<algorithm>
using namespace std;
const int inf = 9999999;
const int len = 100000 + 5;
int n, m;
int num[len];
int main(){
while(~scanf("%d %d", &n, &m)){
for(int i = 0; i <= len; i++){//初始化
num[i] = inf;
}
num[0] = 0;
for(int i = n; i <= len; i++)
num[i] = num[i - n] + n; //num存储的是
//cout << num[100005] << endl;
for(int i = m; i <= len; i++){
num[i] = min(num[i], num[i - m] + m);//有种情况是之前for循环使得第i个数符合条件,但是在此次循环中以m相加上去的时候到num[i]不符合,则可选num[i],可避免该情况
}
cout << num[100005] << endl;
int ans = 0;
for(int i = (n > m ? n : m); i <= len; i++){//遍历得出凑不了的情况
if(num[i] >= inf)
ans = i;
}
printf("%d\n", ans);
}
return 0;
}