#include <bits/stdc++.h>
using namespace std;
long long best[55][2];
long long N, K;
void rec(int i, long long K) {
  if (i > N) return;
  int x = i;
  if (best[i][0] >= K) {
    cout << i << " ";
    rec(x + 1, K);
    return;
  }
  cout << i + 1 << " " << i << " ";
  rec(x + 2, K - best[i][0]);
}
int main() {
  cin >> N >> K;
  best[N][0] = 1;
  best[N][1] = 0;
  best[N - 1][0] = 1;
  best[N - 1][1] = 1;
  if (N == 1) {
    cout << 1;
    return 0;
  }
  if (N == 2) {
    if (K == 1) cout << 1 << " " << 2;
    if (K == 2) cout << 2 << " " << 1;
    return 0;
  }
  for (int i = N - 2; i >= 0; --i) {
    best[i][0] = best[i + 1][0] + best[i + 1][1];
    best[i][1] = best[i + 2][0] + best[i + 2][1];
  }
  rec(1, K);
}
