#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; typedef long long ll; typedef vector vi; typedef pair pii; #define MP make_pair #define PB push_back #define inf 1000000007 #define rep(i,n) for(int i = 0; i < (int)(n); ++i) #define all(x) (x).begin(),(x).end() template void Fill(A (&array)[N], const T &val){ std::fill( (T*)array, (T*)(array+N), val ); } template inline bool chmax(T &a, T b){ if(a inline bool chmin(T &a, T b){ if(a>b){ a = b; return true; } return false; } vector res; int dst[12][12]; int main(){ int n; cin >> n; res.resize(n); // vectorv(n); // rep(i,n){ // v[i] = i+1; // } // int mi = inf; // do{ // vector a(n+2); // Fill(dst,inf); // rep(i,n){ // a[i+1] = v[i]; // } // a[0] = 2e9; // a[n+1] = 2e9; // for(int i=1;i<=n;i++){ // for(int j=i-1;j>=0;j++){ // if(a[j]>=a[i]){ // dst[i][j] = 1; // dst[j][i] = 1; // break; // } // } // for(int j=i+1;j<=n+1;j++){ // if(a[j]>=a[i]){ // dst[i][j] = 1; // dst[j][i] = 1; // break; // } // } // } // rep(k,n+2){ // rep(i,n+2){ // rep(j,n+2){ // chmin(dst[i][j],dst[i][k]+dst[k][j]); // } // } // } // int tmp = 0; // rep(i,n){ // rep(j,n){ // tmp += dst[i+1][j+1]; // } // } // if(chmin(mi,tmp)){ // res = v; // } // }while(next_permutation(all(v))); // rep(i,n){ // cout << res[i] << " "; // } // cout << endl; cout << 2000000000 << " "; rep(i,n){ if(i!=n-1){ cout << n-i << " "; }else{ cout << n+1 << " "; } } cout << 2000000000 << "\n"; return 0; }