The Little Elephant enjoys recursive functions.

This time he enjoys the sorting function. Let a is a permutation of an integers from 1 to n, inclusive, and ai denotes the i-th element of the permutation. The Little Elephant's recursive function f(x), that sorts the first x permutation's elements, works as follows:

  * If x = 1, exit the function. 
  * Otherwise, call f(x - 1), and then make swap(ax - 1, ax) (swap the x-th and (x - 1)-th elements of a). 



The Little Elephant's teacher believes that this function does not work correctly. But that-be do not get an F, the Little Elephant wants to show the performance of its function. Help him, find a permutation of numbers from 1 to n, such that after performing the Little Elephant's function (that is call f(n)), the permutation will be sorted in ascending order.

Input

A single line contains integer n (1 ≤ n ≤ 1000) — the size of permutation.

Output

In a single line print n distinct integers from 1 to n — the required permutation. Numbers in a line should be separated by spaces.

It is guaranteed that the answer exists.

Examples

Input

1


Output

1 

Input

2


Output

2 1 
import java.io.*;
import java.util.*;
import javax.print.attribute.HashAttributeSet;

public class CodeForces {

  public void solve() throws IOException {
    int n = nextInt();
    out.print(n+" ");
    for (int i = 1; i < n; i++) {
      out.print(i+" ");
    }
  }

  public static void main(String[] args) {
    new CodeForces().run();
  }

  long NOD(long a, long b) {
    while (a != 0 && b != 0) {
      if (a >= b)
        a = a % b;
      else
        b = b % a;
    }
    return a + b;
  }

  BufferedReader reader;
  StringTokenizer tokenizer;
  PrintWriter out;
  boolean isOuterFile = false;

  public void run() {
    try {
      if (isOuterFile) {
        reader = new BufferedReader(new FileReader("input.txt"));
        out = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")));
        out = new PrintWriter(System.out);
      } else {
        reader = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(System.out);
      }

      tokenizer = null;
      // long t=new Date().getTime();
      solve();
      // writer.println(t-new Date().getTime());
      reader.close();
      out.close();
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
  }

  int nextInt() throws IOException {
    return Integer.parseInt(nextToken());
  }

  long nextLong() throws IOException {
    return Long.parseLong(nextToken());
  }

  double nextDouble() throws IOException {
    return Double.parseDouble(nextToken());
  }

  String nextToken() throws IOException {
    while (tokenizer == null || !tokenizer.hasMoreTokens()) {
      tokenizer = new StringTokenizer(reader.readLine());
    }
    return tokenizer.nextToken();
  }
}