#include <bits/stdc++.h>

#define MAX 50022
#define NIL -1

int primes[MAX];

bool isPrime(int n)
{
    if (n <= 1) {
        primes[n] = 0;
        return false;
    }
    if (n <= 3) {
        primes[n] = 1;
        return true;
    }
    if (n % 2 == 0 || n % 3 == 0) {
        primes[n] = 0;
        return false;
    }
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0) {
            primes[n] = 0;
            return false;
    }
    primes[n] = 1;
    return true;
}

int main()
{
    for (int i = 1; i <= MAX; i++) primes[i] = NIL;
    int N;
    while(std::scanf("%d", &N) != EOF) {
        int i =1;
        while (1) {
            if (primes[N-i] != NIL) {
                if (primes[N-i] == 1) {
                    std::printf("%d ", N-i);
                    break;
                }
            } else {
                if (isPrime(N-i)) {
                    std::printf("%d ", N-i);
                    break;
                }
            }
            i++;
            if (N-1 == 0) break;
        }
        i = 1;
        while (1) {
            if (primes[N+i] != NIL) {
                if (primes[N+i] == 1) {
                    std::printf("%d\n", N-i);
                    break;
                }
            } else {
                if (isPrime(N+i)) {
                    std::printf("%d\n", N+i);
                    break;
                }
            }
            i++;
            if (N+1 == MAX) break;
        }

    }
    return 0;
}

