#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    if (i % 2)
      a[(i + 1) / 2] = a[n - (i + 1) / 2 + 1] = i;
    else
      a[n + i / 2] = a[2 * n - i / 2] = i;
  }
  for (int i = 1; i <= 2 * n; i++)
    if (!a[i]) a[i] = n;
  for (int i = 1; i <= 2 * n; i++) {
    if (i > 1) printf(" ");
    printf("%d", a[i]);
  }
  cout << endl;
}

### Prompt

Create a solution in CPP for the following problem:

You have array a that contains all integers from 1 to n twice. You can arbitrary permute any numbers in a.

Let number i be in positions xi, yi (xi < yi) in the permuted array a. Let's define the value di = yi - xi — the distance between the positions of the number i. Permute the numbers in array a to minimize the value of the sum <image>.

Input

The only line contains integer n (1 ≤ n ≤ 5·105).

Output

Print 2n integers — the permuted array a that minimizes the value of the sum s.

Examples

Input

2


Output

1 1 2 2


Input

1


Output

1 1

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    if (i % 2)
      a[(i + 1) / 2] = a[n - (i + 1) / 2 + 1] = i;
    else
      a[n + i / 2] = a[2 * n - i / 2] = i;
  }
  for (int i = 1; i <= 2 * n; i++)
    if (!a[i]) a[i] = n;
  for (int i = 1; i <= 2 * n; i++) {
    if (i > 1) printf(" ");
    printf("%d", a[i]);
  }
  cout << endl;
}

```