#include <bits/stdc++.h>
using namespace std;
const int maxn = 60 + 100;
const long long llinf = 1e18;
const int mod = 1e9 + 7;
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
long long n, k, dp[60];
long long solve(int i) {
  if (i == n + 1) return 1;
  if (dp[i] != -1) return dp[i];
  long long ret = 0;
  ret += solve(i + 1);
  ret = min(ret, llinf);
  if (i + 2 <= n + 1) ret += solve(i + 2);
  ret = min(ret, llinf);
  return dp[i] = ret;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0);
  memset(dp, -1, sizeof dp);
  cin >> n >> k;
  solve(1);
  vector<int> res;
  for (int i = 1; i <= n; i++) {
    if (i != n && k > dp[i + 1]) {
      k -= dp[i + 1];
      res.push_back(i + 1);
      res.push_back(i);
      i++;
    } else {
      res.push_back(i);
    }
  }
  for (int a : res) cout << a << " ";
  cout << endl;
  return 0;
}
