public void solve(char[][] board) {
            int rows = board.length;
            if (rows < 1) return;
            int columns = board[0].length;
            if (columns < 1) return;
            
            for (int i = 0; i < columns; i++) {
                setOuterFlag(0, i, board, rows, columns);
            }
            for (int i = 0; i < columns; i++) {
                setOuterFlag(rows - 1, i, board, rows, columns);
            }
            for (int i = 0; i < rows; i++) {
                setOuterFlag(i, 0, board, rows, columns);
            }
            for (int i = 0; i < rows; i++) {
                setOuterFlag(i, columns - 1, board, rows, columns);
            }
            
            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < columns; j++) {
                    board[i][j] = 'X';
                }
            }
            
            for (int i = 0, len = outerRowAxis.size(); i < len; i++) {
                board[outerRowAxis.get(i)][outerColumnAxis.get(i)] = 'O';
            }
            

            /*for (int i = 0; i < rows; i++) {
                for (int j = 0; j < columns; j++) {
                    System.out.printf("%s,", board[i][j]);
                }
                System.out.print("\n");
            }*/
        }