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.
def lis(ind):
    global nums
    if ind == len(nums):return 0
    ans = 0
    for i in xrange(ind+1, len(nums)):
        if nums[i] > nums[ind]:
            ans = max(ans, lis(i))
    return ans+1
def lds(ind):
    global nums
    if ind == len(nums):return 0
    ans = 0
    for i in xrange(ind+1, len(nums)):
        if nums[i] < nums[ind]:
            ans = max(ans, lds(i))
    return ans+1
from itertools import permutations
from math import ceil
n=int(raw_input())
ans=[]
numss = range(1,n+1)
'''ind = n - 2
while ind >= 0:
    ans.append(numss[ind])
    ans.append(numss[ind+1])
    ind -= 2
if len(ans) < n:ans.append(1)'''
f = int(n**0.5)
c = int(ceil(n**0.5))
ind = n - 1
while ind>=0:
    for i in xrange(ind - f+1, ind+1):
        if i>=0:
            ans.append(numss[i])
    ind -= f
print ' '.join(map(str, ans))
exit(0)
k = permutations(numss, n)
v = 1e999
for nums in k:
    s1 = 0
    s2 = 0
    for i in xrange(n):
        s1=max(s1,lis(i))
        s2=max(s2,lds(i))
    s = s1 + s2
    if s  < v:
        v = s
        print nums
    '''if s==v:
        print nums'''
print v, n/f + f, v/c+c
exit(0)
k = permutations(numss, n)
for nums in k:
    s1 = 0
    s2 = 0
    for i in xrange(n):
        s1=max(s1,lis(i))
        s2=max(s2,lds(i))
    s = s1 + s2
    if s  == v:
        v = s
        print nums
    '''if s==v:
        print nums'''

print v
#print ' '.join(map(str, [nums[0]] + nums[1::][::-1]))
    
    
