#include <string>
#include <string.h>
#include <queue>
#include <iostream>
using namespace std;
class Node
{
public:
char data;
Node *left, *right;
Node(){}
~Node()
{
delete left;
delete right;
}
};
static int i = 0;
Node *creattree(string str)
{
Node *p = new Node;
if(str[i] == '0')
{
p = NULL;
}
else
{
p->data = str[i];
i++;
p->left = creattree(str);
i++;
p->right = creattree(str);
}
return p;
}
int height(Node *tree, int h)
{
int a = h, b = h;
if(tree->left)
{
a++;
a = height(tree->left, a);
}
if(tree->right)
{
b++;
b = height(tree->right, b);
}
return a>b ? a : b;
}
int main()
{
int T, h;
string str;
cin >> T;
while(T--)
{
i = 0;
h = 1;
Node *tree = NULL;
cin >> str;
tree = creattree(str);
h = height(tree, h);
cout << h << endl;
delete tree;
}
return 0;
}