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

### 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);
  int p = n & 1 ? n - 1 : n;
  int j = 1, k = n + 1;
  for (int i = 1; i <= p; i++) {
    if (i & 1) {
      a[j] = i;
      a[j + n - i] = i;
      j++;
    } else {
      a[k] = i;
      a[k + n - i] = i;
      k++;
    }
  }
  for (int i = 1; i <= 2 * n; i++) {
    if (!a[i])
      printf("%d ", n);
    else
      printf("%d ", a[i]);
  }
  printf("\n");
  return 0;
}

```