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.
#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n;
  cin >> n;
  int m = 1;
  while ((m + 1) * (m + 1) <= n) m++;
  vector<int> a;
  for (int i = 1; i <= n; i++) {
    a.push_back(i);
  }
  for (int i = 0; i < n; i += m) {
    reverse(a.begin() + i, a.begin() + min(i + m, n));
  }
  for (int i = 0; i < n; i++) {
    cout << a[i];
    if (i + 1 < n) cout << " ";
  }
  cout << endl;
}
int lis(vector<int>& a) {
  int dp[15] = {};
  dp[0] = 1;
  for (int i = 1; i < a.size(); i++) {
    dp[i] = 1;
    for (int j = 0; j < i; j++) {
      if (a[j] > a[i]) {
        dp[i] = max(dp[i], dp[j] + 1);
      }
    }
  }
  int ans = 0;
  for (int i = 0; i < a.size(); i++) {
    ans = max(ans, dp[i]);
  }
  return ans;
}
int lds(vector<int>& a) {
  int dp[15] = {};
  dp[0] = 1;
  for (int i = 1; i < a.size(); i++) {
    dp[i] = 1;
    for (int j = 0; j < i; j++) {
      if (a[j] < a[i]) {
        dp[i] = max(dp[i], dp[j] + 1);
      }
    }
  }
  int ans = 0;
  for (int i = 0; i < a.size(); i++) {
    ans = max(ans, dp[i]);
  }
  return ans;
}
void test() {
  vector<int> a = {2, 1, 5, 4, 3, 8, 7, 6, 11, 10, 9};
  int m = INT_MAX;
  do {
    int x = lis(a) + lds(a);
    m = min(m, x);
    if (x == 7) {
      for (int i = 0; i < a.size(); i++) {
        cout << a[i] << " ";
      }
      cout << endl;
      break;
    }
  } while (next_permutation(a.begin(), a.end()));
  cout << m << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  solve();
  return 0;
}
