#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int maxn = 1e6 + 10;
int mx[maxn];
void init() {
  for (int i = 2; i < maxn; ++i) {
    if (!mx[i]) {
      for (int j = i + i; j < maxn; j += i) mx[j] = i;
    }
  }
}
int ans = 1e7;
void get(int nu) {
  if (!mx[nu]) return;
  int c = nu - mx[nu] + 1;
  ans = min(ans, c);
}
int main() {
  init();
  int x;
  cin >> x;
  for (int i = x - mx[x] + 1; i <= x; ++i) get(i);
  cout << ans;
  return 0;
}
