#include <bits/stdc++.h>
long long dp[51];
long long dp2(int x) {}
void construct(long long num, int startNum, int numLeft) {
  if (numLeft < 1) return;
  if (dp[numLeft - 1] < num && numLeft >= 2) {
    num -= dp[numLeft - 1];
    printf("%d %d ", startNum + 1, startNum);
    construct(num, startNum + 2, numLeft - 2);
  } else {
    printf("%d ", startNum);
    construct(num, startNum + 1, numLeft - 1);
  }
}
int main() {
  dp[0] = 0;
  dp[1] = 1;
  dp[2] = 2;
  dp[3] = 3;
  for (int i = 4; i <= 50; i++) {
    dp[i] = dp[i - 1] + dp[i - 2];
  }
  long long n, k;
  scanf("%lld %lld", &n, &k);
  construct(k, 1, n);
}
