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 
/*
 Author: sunits789
 Task: 136A
 Lang: JAVA
 */
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.math.BigInteger;
import java.io.InputStream;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.FileReader;


public class A136
{
	public static void main(String[] Args)
	{
		long t1=System.currentTimeMillis();
		// String inputStream = "file.in";
		// String outputStream = "file.out";
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		// PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputStream)));
		CodeA136 solver = new CodeA136();
		solver.solve(1, in, out);
		out.close();
		long t2=System.currentTimeMillis();
		System.out.println(t2-t1+"ms");
	}
}

class CodeA136
{
	public void solve(int testNumber, InputReader in, PrintWriter out)
	{
		int n=in.nextInt();
		out.print(n+" ");
		for(int i=1;i<n;i++)
		{
			out.print(i+" ");
		}
	}
	
	public void printArray(int arr[],PrintWriter out)
	{
		for(int i=0;i<arr.length;i++)
		{
			out.println(arr[i]);
		}
	}
	public void printArray(long arr[],PrintWriter out)
	{
		for(int i=0;i<arr.length;i++)
		{
			out.println(arr[i]);
		}
	}
	public void printArray(double arr[],PrintWriter out)
	{
		for(int i=0;i<arr.length;i++)
		{
			out.println(arr[i]);
		}
	}
	public void printArray(String arr[],PrintWriter out)
	{
		for(int i=0;i<arr.length;i++)
		{
			out.println(arr[i]);
		}
	}
}








class InputReader
{
	private BufferedReader reader;
	private StringTokenizer tokenizer;

	public InputReader(InputStream stream)
	{
		reader = new BufferedReader(new InputStreamReader(stream));
		tokenizer = null;
	}

	public InputReader(String iFile)throws IOException
	{
		reader = new BufferedReader(new FileReader(iFile));
		tokenizer = null;
	}

	public String next()
	{
		while (tokenizer == null || !tokenizer.hasMoreTokens())
		{
			try
			{
				tokenizer = new StringTokenizer(reader.readLine());
			}
			catch (IOException e)
			{
				throw new RuntimeException(e);
			}
		}
		return tokenizer.nextToken();
	}

	public int nextInt()
	{
		return Integer.parseInt(next());
	}

	public long nextLong()
	{
		return Long.parseLong(next());
	}

	public double nextDouble()
	{
		return Double.parseDouble(next());
	}
	
	public void getArray(int arr[])
	{
		for(int i=0;i<arr.length;i++)
		{
			arr[i]=nextInt();
		}
	}
	
	public void getArray(double arr[])
	{
		for(int i=0;i<arr.length;i++)
		{
			arr[i]=nextDouble();
		}
	}
	
	public void getArray(String arr[])
	{
		for(int i=0;i<arr.length;i++)
		{
			arr[i]=next();
		}
	}
	
	public void getArray2D(String arr[][])
	{
		for(int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
			{
				arr[i][j]=next();
			}
		}
	}
	
	public void getArray2D(int arr[][])
	{
		for(int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
			{
				arr[i][j]=nextInt();
			}
		}
	}
	
	public void getArray2D(double arr[][])
	{
		for(int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
			{
				arr[i][j]=nextDouble();
			}
		}
	}
}
