/*
ZADATAK: prosim
JEZIK: c++
*/

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;

const int MaxN = 1001;

int a , b , n;

FILE *inFile;
FILE *outFile;

int P[MaxN];
int numP = 0;

bool U[MaxN];

void Init(){
	inFile = fopen("prosim.in" , "r");
	//scanf("%d %d %d" , &a , &b , &n);
	fscanf(inFile, "%d %d %d" , &a , &b , &n);
	fclose(inFile);
}

bool Prime(int num){
	int gr = (int)(sqrt((double)(num)));
	for (int i = 0 ; (i < numP) && (P[i] <= gr) ; i++)
		if ((num % P[i]) == 0)
			return false;
	return true;
}

void Solve(){
	P[0] = 2;
	numP++;
	for (int i = 3 ; i <= n ; i++)
		if (Prime(i)){
			P[numP] = i;
			numP++;
		}
	
	for (int i = 0 ; i < MaxN ; i++)
		U[i] = false;
	
	int numO = b - a + 1;
	for (int i = a ; i <= b ; i++)
		for (int j = 0 ; (j < numP) && (P[j] <= i) ; j++)
			if (P[j] == i){
				U[j] = true;
				numO--;
			}
	
	outFile = fopen("prosim.out" , "w");
	
	if (numO == 2){
		int pom;
		for (int i = a ; i <= b ; i++)
			if (!U[i]){
				//printf("%d ", i);
				fprintf(outFile , "%d ", i);
				pom = i + 1;
				break;
			}
			
		for (int i = pom ; i <= b ; i++)
			if (!U[i]){
				//printf("%d ", i);
				fprintf(outFile , "%d\n", i);
				break;
			}
	}
	else if (n == 1){
		for (int i = 2 ; i <= b ; i++){
			int tmp = (int)(sqrt((double)(i)));
			if (tmp * tmp == i){
				//printf("1 %d", i);
				fprintf(outFile , "1 %d", i);
				break;
			}
		}
	}
	fclose(outFile);
	
	//cin >> n;
}

int main(){
	Init();
	Solve();
	return 0;
}
