#include <bits/stdc++.h>
#include <iostream>
#include <math.h>
#include <vector>
#include <unordered_map>
#include <unordered_set>
using namespace std;
#define int long long int
#define double long double 
#define ll  long long 
#define pb push_back
#define mp make_pair
#define fe first
#define se second
#define nl "\n"
#define ub upper_bound
#define lb lower_bound
#define sz(x) (int)(x.size())
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define rko ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

//----------------------------------------------------------------------------------------------------------------------------------------------------

const double pi = 3.14159265358979323;
int mod = 1000000000 + 7;
// // int mod = 998244353;
const double pii = acos(-1.0);
const int INF = 1e18;
const int inf = 1e9;

//----------------------------------------------------------------------------------------------------------------------------------------------------

ll power(ll x,ll y){ll res=1;x=x;while(y>0){if(y&1)res=(res*x);y=y>>1;x=(x*x);}return res;}
ll powe(ll x, ll y){x = x%mod, y=y%(mod-1);ll ans = 1;while(y>0){if (y&1){ans = (1ll * x * ans)%mod;}y>>=1;x = (1ll * x * x)%mod;}return ans;}
ll gcd(ll a,ll b){if (a==0)return b;return gcd(b%a,a);}
ll lcm(ll a,ll b){return (a/gcd(a,b)*b);}
bool isPrime(int n){if(n<2) return false;for(int i=2;i*i<=n;i++)if(n%i==0) return false;return true;}
ll ncr(ll n,ll r){ll res=1;if(r>n)return 0;if(r>n-r)r=n-r;for(ll i=0;i<r;i++){res*=(n-i);res/=(i+1);}return res;}
ll add(ll a, ll b){return((a % mod + b % mod) % mod);}
ll sub(ll a, ll b){return((a % mod - b % mod + mod) % mod);}
ll mul(ll a, ll b){return(((a % mod) * (b % mod)) % mod);}
ll divi(ll a, ll b){return(mul(a, powe(b, mod - 2)) % mod);}

//-------------------------------------------------------------------------------------------------------------------------------------------------------

void fun()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
    //786
}

//-------------------------------------------------------------------------------------------------------------------------------------------------------

const int N = 2e5 + 7;

//--------------------------------------------------------------------------------------------------------------------------------------------------------

// int fact[N];
// void pre()
// {
//     fact[0] = 1;
//     for(int i=1;i<N;i++)
//     {
//         fact[i] = mul(fact[i-1], i);
//     }
// }
// int ncrr(int n, int r)
// {
//     if(n < r) return 0;
//     return divi(fact[n], (mul(fact[r], fact[n-r])));
// }



//--------------------------------------------------------------------------------------------------------------------------------------------------------
signed main() 
{
    rko;
    fun();
    // pre();
    int tests=1; cin >> tests;
    while(tests--)
    {
        string s; cin >> s;
        int n = sz(s);
        int ans = 0;
        for(int i=1;i<n;i++) 
        {
            if(s[i] == s[i-1]) ans++, s[i] = '$';
            if(i > 1) if(s[i] == s[i-2]) if(s[i-2] != '$') s[i] = '$', ans++; 
        }
        cout << ans << '\n';
    }    
    cerr << "time elapsed : " << 1.0 * clock() / CLOCKS_PER_SEC << " sec \n";
    return 0;
}