// #define _GLIBCXX_DEBUG // for STL debug (optional) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long int; using int64 = long long int; template void chmax(T &a, T b) {a = max(a, b);} template void chmin(T &a, T b) {a = min(a, b);} template void chadd(T &a, T b) {a = a + b;} int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; const int INF = 1LL << 29; const ll LONGINF = 1LL << 60; const ll MOD = 1000000007LL; const int MAX_V = 2000010; int d[MAX_V + 5], tab[MAX_V + 5], prime[MAX_V + 5]; int f(int N) { return N - d[N]; } int main() { fill(prime + 2, prime + MAX_V, true); fill(d, d + MAX_V, 1); for(int p=2; p> X; int min_val = INF; vector ans; for(int A=1; A+1<=X; A++) { int B = X - A; int Z = abs(f(A) - f(B)); if(Z < min_val) { min_val = Z; ans.clear(); ans.emplace_back(A); } else if(Z == min_val) { ans.emplace_back(A); } } for(size_t i=0; i