#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' /* 3的倍数(各个位数之和为3的倍数) */ void solve() { string s; cin>>s; int len=s.size(); s=" "+s; int cnt0=0; int cnt1=0; int cnt2=0; int cnt3=0; int f=0; int y=0; for(int i=1;i<=len;i++) { int x=s[i]-'0'; if(x) { f++; } y+=x; cnt0+=(x==0); cnt1+=(x%3==1); cnt2+=(x%3==2); cnt3+=(x%3==0&&x!=0); } if(y%3!=0&&(f==1||y<3)) { cout<<0<<endl; return ; } int ans=0; y%=3; if(y==1&&cnt1) { ans++; if(cnt1==1&&(s[1]-'0')%3==1) { int j=2; while(j<=len) { if(s[j]=='0') { len--,cnt0--; } else break; j++; } } } else if(y==2&&cnt2) { ans++; if(cnt2==1&&(s[1]-'0')%3==2) { int j=2; while(j<=len) { if(s[j]=='0') len--,cnt0--; else break; j++; } } } if(y%3==0||ans) { ans+=cnt0;//有删除 则肯定是3的倍数 ans+=cnt3; } if(ans==len) ans--;//例如30 cout<<ans<<endl; } /* 1 1030 */ signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T=1; cin>>T; while(T--) solve(); return 0; }