#include <bits/stdc++.h>
using namespace std;
long long tavan(long long x, long long y) {
  long long res = 1;
  while (y) {
    res *= y % 2 ? x : 1;
    res %= ((long long)1e9 + 7);
    x *= x;
    x %= ((long long)1e9 + 7);
    y /= 2;
  }
  return res;
}
long long t, n, dp[2][((long long)87)], f[((long long)87)];
bool mark[((long long)87)];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> t;
  f[1] = 1;
  f[2] = 2;
  for (int i = 3;
       i < ((long long)87) && ((long long)1e18 + 1000) - f[i - 1] > f[i - 2];
       i++)
    f[i] = f[i - 1] + f[i - 2];
  while (t--) {
    cin >> n;
    for (int i = ((long long)87) - 1; i > 0; i--) {
      if (n >= f[i])
        n -= f[i], mark[i] = 1;
      else
        mark[i] = 0;
    }
    dp[1][1] = 1;
    dp[0][1] = 1 - mark[1];
    dp[1][2] = 1;
    dp[0][2] = 1 - mark[2];
    for (int i = 3; i < ((long long)87); i++) {
      if (!mark[i]) {
        dp[1][i] = dp[1][i - 1];
        if (mark[i - 1])
          dp[0][i] = dp[1][i - 1];
        else
          dp[0][i] = dp[1][i - 1] + dp[0][i - 2];
      } else {
        dp[1][i] = dp[0][i - 2] + dp[1][i - 1];
        if (mark[i - 1])
          dp[0][i] = 0;
        else
          dp[0][i] = dp[0][i - 2];
      }
    }
    cout << dp[1][((long long)87) - 1] << "\n";
  }
  return 0;
}
