public int maxKill(String[] board) {
		checked = new int[board.length][board[0].length()];
		int count = 0;
		int id = 1;
		for (int i = 0; i < board.length; i++) {
			for (int j = 0; j < board[0].length(); j++) {
				if (checked[i][j] > 0) {
					continue;
				}
				char cell = board[i].charAt(j);
				if (cell == 'o') {
					checked[i][j] = id;
					Tuple tuple = checkAroundEmptyCell(board, i, j, id);
					map.add(tuple);
					if (tuple.empty.size() == 0) {
						// おかなくても既に取れるところ
						count += tuple.length;
					}
					id++;
				}
			}
		}
		int max = 0;
		for (int i = 0; i < board.length; i++) {
			for (int j = 0; j < board[0].length(); j++) {
				char cell = board[i].charAt(j);
				if (cell == '.') {
					int c = checkAroundCell(board, i, j);
					max = Math.max(c, max);
				}
			}
		}

		return count + max;
	}