#include<bits/stdc++.h>
#include<algorithm>
#include<cstdio>
#include<fstream>
#include<cstring>
using namespace std;int n , m ;
int c[1001];
int v , u;
long long s[27] = {0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,91,97};
void check(int sum)
{
int ans = 1;
for(int i = 1 ;i <= 26;i++)
ans *= (c[i] + 1);
if(ans > u)
u = ans ,v = sum;
if(ans == u)
v = min(v , sum);
}
void dfs(int sum , int k)
{
if(sum > m)
return ;
if(sum <= m && sum >= n)check(sum);
for(int i = 1 ;i <= 26 ;i++)
{
c[i]++;
dfs(sum * s[i] , i);
c[i]--;
}
}
int main(){
cin >> n >> m;
dfs(1 , 1);
cout << u << " " << v;
return 0;
}