#include <bits/stdc++.h>
using namespace std;
long long int F[100];
const int E = -1;
long long int fib(int n) {
  if (n <= 1) return n;
  if (F[n] != E) return F[n];
  return F[n] = fib(n - 1) + fib(n - 2);
}
string perm(long long int k, long long int n, int mi) {
  if (n == 0) return "";
  if (k == 1) {
    string ans = "";
    for (int i = 0; i < (int)n; ++i) ans += to_string(mi + i) + " ";
    return ans;
  }
  if (k <= fib(n))
    return to_string(mi) + " " + perm(k, n - 1, mi + 1);
  else
    return to_string(mi + 1) + " " + to_string(mi) + " " +
           perm(k - fib(n), n - 2, mi + 2);
}
int main() {
  for (int i = 0; i < (int)100; ++i) F[i] = E;
  long long int n, k;
  cin >> n >> k;
  cout << perm(k, n, 1) << endl;
  return 0;
}
