void solve(){
vector<string> board(10);
rep(i, 0, 10) cin >> board[i];
int answer = 1e9;
rep(bit, 0, 1<<10){
vector<string> cboard = board;
int cnt = 0;
auto press = [&](int r, int c){
cnt++;
cboard[r][c] = (cboard[r][c] == 'O' ? 'X' : 'O');
if(r > 0) cboard[r-1][c] = (cboard[r-1][c] == 'O' ? 'X' : 'O');
if(r < 9) cboard[r+1][c] = (cboard[r+1][c] == 'O' ? 'X' : 'O');
if(c > 0) cboard[r][c-1] = (cboard[r][c-1] == 'O' ? 'X' : 'O');
if(c < 9) cboard[r][c+1] = (cboard[r][c+1] == 'O' ? 'X' : 'O');
};
rep(c, 0, 10) if(bit & (1 << c)) press(0, c);
rep(r, 1, 10) rep(c, 0, 10) if(cboard[r-1][c] == 'O') press(r, c);
bool ok = true;
rep(c, 0, 10) if(cboard[9][c] == 'O') ok = false;
if(ok) answer = min(answer, cnt);
}
if(answer == 1e9) cout << -1 << '\n';
else cout << answer << '\n';
}