#include <bits/stdc++.h>
using namespace std;
long long int dp[59];
int n, a[59];
long long int memoize(int i) {
  if (i == 0) return 1;
  if (dp[i] != -1) return dp[i];
  long long int ans = 0;
  if (i - 2 >= 0) ans += memoize(i - 2);
  ans += memoize(i - 1);
  return dp[i] = ans;
}
void rec(int i, long long int k) {
  if (k == 0) return;
  if (k >= memoize(n - i - 1)) {
    swap(a[i], a[i + 1]);
    rec(i + 2, k - memoize(n - i - 1));
  } else
    rec(i + 1, k);
}
int main() {
  memset(dp, -1, sizeof(dp));
  scanf("%d", &n);
  long long int k;
  scanf("%lld", &k);
  k--;
  for (int i = int(0); i <= int(n - 1); i++) a[i] = i;
  rec(0, k);
  for (int i = int(0); i <= int(n - 1); i++) printf("%d ", a[i] + 1);
  return 0;
}
