1. 
/**
* Angewandte Mathematik, SS11
* Problem: 10309 Turn The Lights Off
* Link: http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1250
*
* @author Waldleitner, Christoph
* @author Weber, Christian
* @author Wolff, Marco
* @version 1.0, 06/29/2011
*
* Method : Ad-Hoc
* Status : Accepted
* Runtime: 0.228
*/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
private static int[][] aInverse = {{0},{0}}
/*Hier steht eigentlich die Inverse der Schaltermatrix A
jedoch habe ich sie hier rausgenommen, da die Lösung des Problems
jeglichen Witz verliert, wenn man A Invers bereits kennt.
Diese Inverse habe ich, da sie nur einmal berechnet wird, und diese Berechnung
bezüglich des Problems nur unnötig zeit erschwendet, vorberechnet.*/
;

public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = "", caseName = "";
int[] c = new int[100];
while(true) {
try {
input = br.readLine();
}
catch(IOException e) {}
caseName = input;
if(!input.matches("end")) {
for(int i = 0; i < 10; i++) {
try {
input = br.readLine();
}
catch(IOException e) {}
for(int j = 10*i; j < 10*(i+1); j++) {
if(input.charAt(j%10) == '#') {
c[j] = 0;
}
else if(input.charAt(j%10) == 'O') {
c[j] = 1;
}
}
}
System.out.println(caseName + " " + howManyButtonsToPress(c));
}
else {
break;
}
}
}

public static int howManyButtonsToPress(int[] state) {
int counter = 0, x = 0;
for(int i = 0; i < aInverse.length; i++) {
x = 0;
for(int j = 0; j < aInverse.length; j++) {
if(state[j] == 0 || aInverse[j][i] == 0) {
continue;
}
else {
x += state[j] * aInverse[j][i];
}
}
if(x%2==1) {
counter++;
}
}
return counter;
}
}