Mrs. Smith is trying to contact her husband, John Smith, but she forgot the secret phone number!

The only thing Mrs. Smith remembered was that any permutation of n can be a secret phone number. Only those permutations that minimize secret value might be the phone of her husband.

The sequence of n integers is called a permutation if it contains all integers from 1 to n exactly once.

The secret value of a phone number is defined as the sum of the length of the longest increasing subsequence (LIS) and length of the longest decreasing subsequence (LDS). 

A subsequence a_{i_1}, a_{i_2}, …, a_{i_k} where 1≤ i_1 < i_2 < … < i_k≤ n is called increasing if a_{i_1} < a_{i_2} < a_{i_3} < … < a_{i_k}. If a_{i_1} > a_{i_2} > a_{i_3} > … > a_{i_k}, a subsequence is called decreasing. An increasing/decreasing subsequence is called longest if it has maximum length among all increasing/decreasing subsequences.

For example, if there is a permutation [6, 4, 1, 7, 2, 3, 5], LIS of this permutation will be [1, 2, 3, 5], so the length of LIS is equal to 4. LDS can be [6, 4, 1], [6, 4, 2], or [6, 4, 3], so the length of LDS is 3.

Note, the lengths of LIS and LDS can be different.

So please help Mrs. Smith to find a permutation that gives a minimum sum of lengths of LIS and LDS.

Input

The only line contains one integer n (1 ≤ n ≤ 10^5) — the length of permutation that you need to build.

Output

Print a permutation that gives a minimum sum of lengths of LIS and LDS. 

If there are multiple answers, print any.

Examples

Input

4


Output

3 4 1 2


Input

2


Output

2 1

Note

In the first sample, you can build a permutation [3, 4, 1, 2]. LIS is [3, 4] (or [1, 2]), so the length of LIS is equal to 2. LDS can be ony of [3, 1], [4, 2], [3, 2], or [4, 1]. The length of LDS is also equal to 2. The sum is equal to 4. Note that [3, 4, 1, 2] is not the only permutation that is valid.

In the second sample, you can build a permutation [2, 1]. LIS is [1] (or [2]), so the length of LIS is equal to 1. LDS is [2, 1], so the length of LDS is equal to 2. The sum is equal to 3. Note that permutation [1, 2] is also valid.
import java.util.*;
import java.io.*;

 
public class Main
{


	public static void main(String args[])
	{
		Scanner sc= new Scanner(System.in);
		
		int n= sc.nextInt();
		
		//q2

		// {
		// 	String str1=sc.next();
		// 	String str2=sc.next();

		// 	int arr1[]= new int[n];
		// 	int arr2[]= new int[n];
		// 	for(int i=0;i<n;i++)
		// 	{
		// 		arr1[i]=str1.charAt(i)-'0';
				
		// 	}
		// 	for(int i=0;i<n;i++)
		// 	{
		// 		arr2[i]=str2.charAt(i)-'0';
				
		// 	}

		// 	int zz=0;
		// 	int zo=0;
		// 	int oz=0;
		// 	int oo=0;

		// 	for(int i=0;i<n;i++)
		// 	{
		// 		if(arr2[i]==0)
		// 		{
		// 			if(arr1[i]==0)
		// 				zz++;
		// 			else
		// 				zo++;
		// 		}
		// 		else if (arr2[i]==1)
		// 		{
		// 			if(arr1[i]==0)
		// 				oz++;
		// 			else
		// 				oo++;
		// 		}
		
		// 	}

		// 	long ans=0;
		// 	long temp=zo*(zz+oz);
		// 	ans+=temp;
		// 	temp=zz*oo;
		// 	ans+=temp;
		// 	System.out.println(ans);
		// }

		// q3
		int arr[]= new int[n];
		int diff=(int)Math.sqrt(n);
		int offset=0;
		int count=0;
		int myn=n;
		while(count<myn)
		{

			int orig=n-diff+1;
			

			int start=orig;
			if(start<=0)
				start=1;
			for(int i=0+offset;i<diff+offset && i<myn;i++)
			{
				arr[i]=start;
				start++;
				count++;
			}
			n=orig-1;
			offset+=diff;
		}

		for(int i=0;i<myn;i++)
			System.out.print(arr[i]+" ");
		
	}

}











