#include <bits/stdc++.h>
using namespace std;
int a;
long long dp[100], b;
vector<int> f(int n, long long k) {
  vector<int> ret, c;
  if (n == 0) return ret;
  if (n == 1) {
    ret.push_back(1);
    return ret;
  }
  int x = 1;
  while (k > dp[n - x]) {
    k -= dp[n - x];
    x++;
  }
  c = f(n - x, k);
  for (int i = x; i > 0; i--) ret.push_back(i);
  for (int i = 0; i < c.size(); i++) ret.push_back(c[i] + x);
  return ret;
}
int main() {
  dp[1] = dp[0] = 1;
  for (int i = 2; i < 50; i++) dp[i] = dp[i - 1] + dp[i - 2];
  cin >> a;
  cin >> b;
  vector<int> ans;
  ans = f(a, b);
  for (int i = 0; i < a; i++) cout << ans[i] << " ";
  cout << endl;
  return 0;
}
