#include <bits/stdc++.h>
using namespace std;
const long long MAX = 1LL * 1e9 * 1e9;
int32_t main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  vector<long long> f;
  f.push_back(1);
  f.push_back(2);
  long long sz = 2;
  while (f[sz - 1] + f[sz - 2] <= MAX) {
    f.push_back(f[sz - 1] + f[sz - 2]);
    ++sz;
  }
  reverse(f.begin(), f.end());
  long long t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    string s;
    for (auto i : f)
      if (i <= n) {
        s.push_back('1');
        n -= i;
      } else
        s.push_back('0');
    long long d1 = 1, d0 = 0, now = 0;
    reverse(s.begin(), s.end());
    for (auto i : s)
      if (i == '0')
        ++now;
      else {
        long long nd1 = d1 + d0, nd0 = d1 * (now / 2) + d0 * ((now + 1) / 2);
        d1 = nd1;
        d0 = nd0;
        now = 0;
      }
    cout << d1 + d0 << endl;
  }
  return 0;
}
