#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;
}