#include using namespace std; #include #include using namespace __gnu_pbds; /*template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>; */typedef long long ll; typedef long double ld; typedef pair pl; typedef pair pii; #define LOCAL 0 #define dbg(x) cerr << #x << " is " << x << " " #define gll(x) scanf("%lld",&x) #define gll2(x,y) scanf("%lld%lld",&x,&y) #define gll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&y) #define gllarr(arr,n) f(i,n) gll(arr[i]); #define sz(x) ((int)x.size()) #define s(x) sort(x.begin(),x.end()) #define all(v) v.begin(),v.end() #define rs(v) { s(v) ; r(v) ; } #define r(v) {reverse(all(v));} #define pb push_back #define mp make_pair #define F first #define S second #define f(i,n) for(int i=0;i=0;i--) #define rep(i,a,b) for(int i=a;i<=b;i++) #define repr(i,a,b) for(int i=a;i>=b;i--) const ll mod = 1000000007; const ll inf = (ll)1e18+1; const ld eps = 1e-12; const ll N = (int)1e+5; const ll LOGN = 19; const ld PI = 3.14159265358979323846; ll mul(ll a, ll b, ll m = mod) { return (ll)(a * b) % m;} ll add(ll a, ll b, ll m = mod) { a += b; if(a >= m) a -= m; if(a < 0) a += m; return a;} ll power(ll a, ll b, ll m = inf) { if(b == 0) return 1; if(b == 1) return (a % m); ll x = power(a, b / 2, m); x = mul(x, x, m); if(b % 2) x = mul(x, a, m); return x;} int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); if(LOCAL) { freopen("C:\\Users\\Dishant\\Desktop\\Collection-DEV c++\\input.txt","r",stdin); freopen("C:\\Users\\Dishant\\Desktop\\Collection-DEV c++\\output.txt","w",stdout); } int t; cin>>t; while(t--) { int n; cin>>n; ll sum=0ll; f(i,n) { ll val; cin>>val; while(val) { int u=val%10; sum+=u; val/=10; } } if(sum%3==0) cout<<"Yes\n"; else cout<<"No\n"; } return 0; }