#include <stdio.h>

#define M 100000

long prime[M] = {};
int count = 0;

void solve()
{
    int flag[M] = {0};
    for (int i = 2; i < M + 1; i++)
    {
        if (flag[i] == 0)
        {
            prime[count] = i;
            count++;

            for (int j = i * 2; j <= M; j += i)
            {
                flag[j] = 1;
            }
        }
    }
}

int main(void)
{
    solve();
    while (1)
    {
        int m, a, b;
        scanf("%d %d %d", &m, &a, &b);
        if ((m | a | b) == 0)
            break;
        double rate = (double)a / b;
        long max = 0;
        long ans_i, ans_j;

        for (long i = 0; i <= count; i++)
        {
            if (prime[i] > m)
                break;
            for (long j = 0; j <= count; j++)
            {
                if (prime[i] * prime[j] <= m)
                {
                    double rate2 = (double)prime[i] / prime[j];

                    if (rate2 >= rate && rate2 <= 1)
                    {
                        if (max < prime[i] * prime[j])
                        {
                            ans_i = prime[i];
                            ans_j = prime[j];
                            max = prime[i] * prime[j];
                        }
                    }
                }
                else
                {
                    break;
                }
            }
        }
        printf("%ld %ld\n", ans_i, ans_j);
    }
}
