#include <bits/stdc++.h>
const int sz = 1000006, mod = 100000;
int n;
long long k;
long long fib[sz];
int ans[sz];
void build() {
  fib[0] = 0;
  fib[1] = 1;
  for (int i = 2; i < 60; i++) fib[i] = fib[i - 1] + fib[i - 2];
}
int main() {
  build();
  int i, j;
  while (scanf("%d %lld", &n, &k) != EOF) {
    int m = n;
    i = 0;
    j = 0;
    while (m > 1) {
      if (k > fib[m]) {
        ans[i++] = 2 + j;
        ans[i++] = 1 + j;
        j += 2;
        k -= fib[m];
        m -= 2;
      } else {
        ans[i++] = 1 + j;
        j++;
        m--;
      }
    }
    if (i < n) ans[i++] = 1 + j;
    printf("%d", ans[0]);
    for (j = 1; j < i; j++) printf(" %d", ans[j]);
    puts("");
  }
  return 0;
}
