/*
ZADATAK: prosim
JEZIK: C++
*/

#include <iostream>
#include <cstdio>
#include <fstream>
#include <vector>
using namespace std;

long a,b,n;
bool jeste[2000],nijes[2000];
bool bilo[2000][2000];


int brojDelioca(int k){
  int br=0;
  for (int i=a; i<=b; i++){
    if (k%i==0) br++;
  }
  br/=2;
  return br;
}


bool resi(int p, int s, int n){
  memset(jeste,0,sizeof(jeste));
  memset(nijes,0,sizeof(nijes));
  memset(bilo,0,sizeof(bilo));
  
  long granica=(a+b)/2;
  if ((a+b)%2==1) granica++;
  for (int i=a; i<=granica; i++){
    int tmp=p/i;
    if (p%i==0){  
      if (bilo[min(i,tmp)][max(i,tmp)]) continue;
      bilo[min(i,tmp)][max(i,tmp)]=true;
      
      long ha=tmp+i;      
      int br=0;
      for (int j=a; j<=granica; j++){
        if (ha-j<=b && ha-j>=a){
          if (brojDelioca((ha-j)*j)==1) nijes[i]=true;
          else br++;
        }
      }
      if (!nijes[i] || br>1) jeste[i]=true;
    }
  }
  
  long br=0;
  for (int i=a; i<=granica; i++){
    if (jeste[i]) br++;
  }
  
  if (br>1) return false;
  for (int i=a; i<=granica; i++){
    long tmp=p/i;
    if (p%i==0){
      if (tmp + i == s && jeste[i]) return true;
    }
  }
  return false;
}


void solve(){    
  ifstream fin("prosim.in");
  fin >> a >> b >> n; fin.close();
  
  if (n>1){
    ofstream fout("prosim.out");
    fout << a << " " << b << endl;
    fout.close();
    return;
  }
  else{
    for (int i=1; i<2; i++){
      for (int j=4; j<=4; j++){
        if (resi(i*j,i+j,n)){
          ofstream fout("prosim.out");
          fout << i << " " << j << endl;          
          fout.close();
          return;
        }
      }
    }
  }
}

int main(){
  solve();
  return 0;
}




