#include <bits/stdc++.h>
using namespace std;
long long inf = (long long)1e18;
long long first[111], dp[111];
int fn;
int a[111], an;
int main() {
  first[1] = 1, first[2] = 2;
  fn = 2;
  while (first[fn - 1] + first[fn] <= inf) {
    first[fn + 1] = first[fn] + first[fn - 1];
    ++fn;
  }
  first[fn + 1] = inf + 1;
  first[fn + 2] = inf + 1;
  int tests;
  scanf("%d", &tests);
  for (int casenum = 1; casenum <= tests; ++casenum) {
    long long n;
    scanf("%lld", &n);
    an = 0;
    for (int i = fn; i >= 0; --i)
      if (n >= first[i]) {
        a[an++] = i;
        n -= first[i];
      }
    reverse(a, a + an);
    dp[0] = 1;
    for (int i = 1; i < an; ++i) {
      int k = a[i] - a[i - 1];
      dp[i] = dp[i - 1] * ((k + 1) / 2);
      if (i >= 2 && !(k & 1)) {
        dp[i] += dp[i - 1] - dp[i - 2];
      }
    }
    printf(
        "%lld"
        "\n",
        dp[an - 1]);
  }
  return 0;
}
