#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000009;
long long q[55];
vector<int> v;
void dfs(int n, long long k, int g) {
  if (n == 0) return;
  if (k > q[n - 1]) {
    v.push_back(g + 1);
    v.push_back(g);
    dfs(n - 2, k - q[n - 1], g + 2);
  } else {
    v.push_back(g);
    dfs(n - 1, k, g + 1);
  }
}
int main() {
  int n;
  long long k;
  q[0] = 1;
  q[1] = 1;
  for (int j = 2; j < 55; j++) q[j] = q[j - 1] + q[j - 2];
  cin >> n >> k;
  dfs(n, k, 1);
  for (int j = 0; j < v.size(); j++) {
    if (j) cout << " ";
    cout << v[j];
  }
  cout << endl;
  return 0;
}
