#include <bits/stdc++.h>
using namespace std;
// Speed
#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
// Typedefs
#define int long long
#define pb push_back
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) ((int)(x).size())
#define endl '\n'
// Loops
#define rep(i,a,b) for(int i=a;i<b;++i)
#define per(i,a,b) for(int i=b-1;i>=a;--i)
#define each(x, a) for (auto& x : a)
// Consts
const int INF = 1e18;
const int MOD = 1e9+7;
const int N = 2e5 + 5;
// Math
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int lcm(int a, int b) { return (a / gcd(a, b)) * b; }
int power(int a, int b, int m = MOD) {
int res = 1;
while (b > 0) {
if (b & 1) res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}
int modinv(int a, int m = MOD) {
return power(a, m - 2, m);
}
// Logic
void solve() {
string r;
cin >> r;
int n = r.size();
vector<int> s_pos;
int total_u = 0;
for (int i = 0; i < n; i++) {
if (r[i] == 's') s_pos.pb(i);
else total_u++;
}
if (sz(s_pos) < 2) {
cout << total_u << endl;
return;
}
int allowed_u = 0;
for (int i = 0; i + 1 < sz(s_pos); i++) {
int L = s_pos[i];
int R = s_pos[i + 1];
int d = R - L - 1;
if (d % 2 == 0 && d > 0) {
int mid = (L + R) / 2;
if (r[mid] == 'u') allowed_u++;
}
}
cout << total_u - allowed_u << endl;
}
// Main
int32_t main() {
fast_io;
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBTcGVlZAojZGVmaW5lIGZhc3RfaW8gaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApCgovLyBUeXBlZGVmcwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgcmFsbCh4KSAoeCkucmJlZ2luKCksICh4KS5yZW5kKCkKI2RlZmluZSBzeih4KSAoKGludCkoeCkuc2l6ZSgpKQojZGVmaW5lIGVuZGwgJ1xuJwoKLy8gTG9vcHMKI2RlZmluZSByZXAoaSxhLGIpIGZvcihpbnQgaT1hO2k8YjsrK2kpCiNkZWZpbmUgcGVyKGksYSxiKSBmb3IoaW50IGk9Yi0xO2k+PWE7LS1pKQojZGVmaW5lIGVhY2goeCwgYSkgZm9yIChhdXRvJiB4IDogYSkKCi8vIENvbnN0cwpjb25zdCBpbnQgSU5GID0gMWUxODsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgTiA9IDJlNSArIDU7CgovLyBNYXRoCmludCBnY2QoaW50IGEsIGludCBiKSB7IHJldHVybiBiID09IDAgPyBhIDogZ2NkKGIsIGEgJSBiKTsgfQppbnQgbGNtKGludCBhLCBpbnQgYikgeyByZXR1cm4gKGEgLyBnY2QoYSwgYikpICogYjsgfQoKaW50IHBvd2VyKGludCBhLCBpbnQgYiwgaW50IG0gPSBNT0QpIHsKICAgIGludCByZXMgPSAxOwogICAgd2hpbGUgKGIgPiAwKSB7CiAgICAgICAgaWYgKGIgJiAxKSByZXMgPSByZXMgKiBhICUgbTsKICAgICAgICBhID0gYSAqIGEgJSBtOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgppbnQgbW9kaW52KGludCBhLCBpbnQgbSA9IE1PRCkgewogICAgcmV0dXJuIHBvd2VyKGEsIG0gLSAyLCBtKTsKfQoKLy8gTG9naWMKdm9pZCBzb2x2ZSgpIHsKICAgIHN0cmluZyByOwogICAgY2luID4+IHI7CiAgICBpbnQgbiA9IHIuc2l6ZSgpOwoKICAgIHZlY3RvcjxpbnQ+IHNfcG9zOwogICAgaW50IHRvdGFsX3UgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWYgKHJbaV0gPT0gJ3MnKSBzX3Bvcy5wYihpKTsKICAgICAgICBlbHNlIHRvdGFsX3UrKzsKICAgIH0KCiAgICBpZiAoc3ooc19wb3MpIDwgMikgewogICAgICAgIGNvdXQgPDwgdG90YWxfdSA8PCBlbmRsOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgYWxsb3dlZF91ID0gMDsKCiAgICBmb3IgKGludCBpID0gMDsgaSArIDEgPCBzeihzX3Bvcyk7IGkrKykgewogICAgICAgIGludCBMID0gc19wb3NbaV07CiAgICAgICAgaW50IFIgPSBzX3Bvc1tpICsgMV07CiAgICAgICAgaW50IGQgPSBSIC0gTCAtIDE7CgogICAgICAgIGlmIChkICUgMiA9PSAwICYmIGQgPiAwKSB7CiAgICAgICAgICAgIGludCBtaWQgPSAoTCArIFIpIC8gMjsKICAgICAgICAgICAgaWYgKHJbbWlkXSA9PSAndScpIGFsbG93ZWRfdSsrOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IHRvdGFsX3UgLSBhbGxvd2VkX3UgPDwgZW5kbDsKfQoKLy8gTWFpbgppbnQzMl90IG1haW4oKSB7CiAgICBmYXN0X2lvOwoKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=