#include <bits/stdc++.h>
using namespace std;
int r[100];
void solve(int n, unsigned long long k, vector<int>& r) {
  r.resize(n);
  for (int i = 1; i <= n; ++i) r[i - 1] = i;
  if (n == 1) return;
  vector<unsigned long long> np(n);
  np[n - 1] = 1;
  np[n - 2] = 2;
  for (int i = n - 3; i >= 0; --i) {
    np[i] = np[i + 1] + np[i + 2];
  }
  while (k > 1) {
    int j = n - 2;
    while (np[j] < k) --j;
    k -= np[j + 1];
    swap(r[j], r[j + 1]);
  }
}
int main() {
  int n;
  unsigned long long l;
  cin >> n >> l;
  vector<int> r;
  solve(n, l, r);
  for (int i = 0; i < n - 1; ++i) cout << r[i] << " ";
  cout << r[n - 1] << "\n";
  return 0;
}
