#include #include void solve() { using namespace std; string s; cin >> s; int n = s.size() - 1; vector fac_f(n + 1), fac_e(n + 1); fac_f[0] = 1; fac_e[0] = 0; for (int i = 0; i < n; i++) { int k = i + 1, e = 0; while (k % 3 == 0) { k /= 3; e++; } fac_f[i + 1] = fac_f[i] * k % 9; fac_e[i + 1] = fac_e[i] + e; } constexpr int inv[] = {0, 1, 5, 0, 7, 2, 0, 4, 8}; vector ifac_f(n + 1), ifac_e(n + 1); ifac_f[n] = inv[fac_f[n]]; ifac_e[n] = -fac_e[n]; for (int i = n; i > 0; i--) { int k = i, e = 0; while (k % 3 == 0) { k /= 3; e++; } ifac_f[i - 1] = ifac_f[i] * k % 9; ifac_e[i - 1] = ifac_e[i] + e; } auto comb_mod9 = [&](int n, int r) -> int { if (n < 0 || r < 0 || n < r) { return 0; } int res = fac_f[n] * ifac_f[r] * ifac_f[n - r] % 9; int e = fac_e[n] + ifac_e[r] + ifac_e[n - r]; if (e > 1) { return 0; } if (e == 1) { res = res * 3 % 9; } return res; }; bool all_zero = true; int ans = 0; for (int i = 0; i <= n; i++) { all_zero &= (s[i] == '0'); ans += (s[i] - '0') * comb_mod9(n, i); ans %= 9; } if (!all_zero && ans == 0) { ans = 9; } cout << ans << "\n"; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int t; std::cin >> t; while (t--) { solve(); } }