#include <bits/stdc++.h>
using namespace std;
long long fib[90];
long long dp[90][2];
int main() {
  fib[1] = 1;
  fib[2] = 2;
  for (int i = 3; i <= 88; i++) fib[i] = fib[i - 1] + fib[i - 2];
  int t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    int b[90];
    int cnt = 0;
    for (int i = 88; i >= 1; i--)
      if (fib[i] <= n) n -= fib[b[cnt++] = i];
    reverse(b, b + cnt);
    dp[0][1] = 1;
    dp[0][0] = (b[0] - 1) / 2;
    for (int i = 1; i < cnt; i++) {
      dp[i][1] = dp[i - 1][0] + dp[i - 1][1];
      dp[i][0] = (b[i] - b[i - 1] - 1) / 2 * dp[i - 1][1] +
                 (b[i] - b[i - 1]) / 2 * dp[i - 1][0];
    }
    printf("%I64d\n", dp[cnt - 1][0] + dp[cnt - 1][1]);
  }
  return 0;
}
