#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <vector> #include <set> #include <map> #include <utility> #include <cstdlib> #include <memory> #include <queue> #include <cassert> #include <cmath> #include <ctime> #include <complex> #include <bitset> #include <fstream> #include <unordered_map> #include <unordered_set> #include <numeric> using namespace std; #define ws ws_____________________ #define y1 y1_____________________ #define y0 y0_____________________ #define left left_________________ #define right right_______________ #define next next_________________ #define prev prev_________________ #define hash hash_________________ #define pb push_back #define fst first #define snd second #define mp make_pair #define sz(C) ((int) (C).size()) #define forn(i, n) for (int i = 0; i < int(n); ++i) #define ford(i, n) for (int i = int(n) - 1; i >= 0; --i) #define all(C) begin(C), end(C) typedef long long ll; typedef unsigned long long ull; typedef unsigned int uint; typedef pair<int,int> pii; typedef pair<ll, ll> pll; typedef vector<ll> vll; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<pii> vii; typedef long double ld; typedef complex<double> cd; #ifdef LOCAL #define eprintf(args...) fprintf(stderr, args), fflush(stderr) #else #define eprintf(...) ; #endif #define FILE_NAME "a" int n; vi a; bool read() { if (scanf("%d", &n) < 1) { return 0; } a.resize(n); forn(i, n) { scanf("%d", &a[i]); } return 1; } bool solve() { int sum = 0; for (int x : a) { while (x) { sum += x % 10; sum %= 3; x /= 10; } } return sum == 0; } int main() { #ifdef LOCAL freopen(FILE_NAME ".in", "r", stdin); // freopen(FILE_NAME ".out", "w", stdout); #endif int T; scanf("%d", &T); forn(t, T) { assert(read()); puts(solve() ? "Yes" : "No"); } #ifdef LOCAL eprintf("Time: %.10f\n", (double) clock() / CLOCKS_PER_SEC); #endif return 0; }