#include <bits/stdc++.h>
using namespace std;
long long fib[100];
long long dp[100][5];
bool ok[100];
int ans[111];
int n;
long long k;
void init(int pos) {
  if (pos > n) return;
  if (ok[pos]) return;
  ok[pos] = 1;
  if (pos == n) {
    dp[pos][1] = 1;
    return;
  }
  if (pos == n - 1) {
    dp[pos][2] = 1;
    dp[pos][1] = 1;
    return;
  }
  init(pos + 1);
  init(pos + 2);
  dp[pos][1] += dp[pos + 1][1] + dp[pos + 1][2];
  dp[pos][2] += dp[pos + 2][1] + dp[pos + 2][2];
}
void trace(int pos) {
  if (pos > n) return;
  if (dp[pos][1] >= k) {
    ans[pos] = pos;
    trace(pos + 1);
  } else {
    ans[pos] = pos + 1;
    ans[pos + 1] = pos;
    k -= dp[pos][1];
    trace(pos + 2);
  }
}
int main() {
  scanf("%d %lld", &n, &k);
  init(1);
  trace(1);
  for (int i = 1; i <= n; i++) printf("%d ", ans[i]);
}
