#include <bits/stdc++.h>
using namespace std;
bool f[1000001];
int p[80001];
int n, i, j, k, l, len, s, ans;
int main() {
  scanf("%d", &n);
  for (i = 2; i <= n; i++) {
    if (!f[i]) p[++len] = i;
    for (j = 1; j <= len; j++)
      if (i * p[j] <= n) {
        f[i * p[j]] = 1;
        if (!(i % p[j])) break;
      } else
        break;
  }
  ans = 233333333;
  for (l = len; l >= 1; l--)
    if (!(n % p[l])) {
      s = (n / p[l] - 1) * p[l];
      for (i = 1; i <= len; i++)
        if ((p[i] << 1) <= n) {
          k = (s / p[i]) * p[i] + 1;
          j = ceil(1.0 * ceil(1.0 * k / p[i]) * p[i] / p[l]) * p[l];
          if (j != n) continue;
          ans = min(ans, k);
        } else
          break;
    }
  printf("%d\n", ans);
}
