#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define rep(i,n) repl(i,0,n)
#define each(itr,v) for(auto itr:v)
#define pb(s) push_back(s)
#define mp(a,b) make_pair(a,b)
#define all(x) (x).begin(),(x).end()
#define dbg(x) cout<<#x"="<<x<<endl
#define maxch(x,y) x=max(x,y)
#define minch(x,y) x=min(x,y)
#define uni(x) x.erase(unique(all(x)),x.end())
#define exist(x,y) (find(all(x),y)!=x.end())
#define bcnt(x) bitset<32>(x).count()

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> P;
typedef pair<P, int> PPI;
typedef pair<ll, ll> PL;
typedef pair<P, ll> PPL;

#define INF INT_MAX/3

#define MAX_N 1000

int m,a,b;
bool is_prime[111111];

int main(){
	cin.sync_with_stdio(false);
	for(int i=0;i<=100000;i++)is_prime[i]=true;
	for(int i=2;i<=100000;i++){
		if(is_prime[i])for(int j=i*2;j<=100000;j+=i)is_prime[j]=false;
	}
	while(1){
		cin>>m>>a>>b;
		if(m==0)break;
		int resp,resq,maxx=0;
		for(int p=2;p*p<=m;p++){
			if(is_prime[p]){
				for(int q=p;p*q<=m&&a*q<=b*p;q++){
					if(is_prime[q]&&maxx<p*q){
						maxx=p*q; resp=p; resq=q;
					}
				}
			}
		}
		cout<<resp<<" "<<resq<<endl;
	}
	return 0;
}