#include <bits/stdc++.h>
using namespace std;
void reset(int& n, int first) { n = n & ~(1 << first); }
bool check(int n, int first) { return (bool)(n & (1 << first)); }
const int mx = 55;
long long inf = 1e18;
unsigned long long f[mx], v;
int a[mx];
int main() {
  f[0] = f[1] = 1;
  int i, j, k, n;
  for (i = 2; i < mx; i++) f[i] = f[i - 1] + f[i - 2];
  while (cin >> n >> v) {
    int cur = n;
    for (i = 1; i <= n; i++) a[i] = i;
    for (i = 1; i <= n; i++) {
      if (v > f[cur - 1]) {
        swap(a[i], a[i + 1]);
        i++;
        cur -= 2;
        v -= f[cur + 1];
      } else
        cur--;
    }
    for (i = 1; i <= n; i++) printf("%d ", a[i]);
    puts("");
  }
}
