public boolean exist(char[][] board, String word) {
		// Start typing your Java solution below
		// DO NOT write main() function
		if (board.length == 0 || board[0].length == 0 || word.length() == 0) {
			return false;
		}
		boolean[][] visit = new boolean[board.length][board[0].length];
		boolean result = false;
		for (int i = 0; i < board.length; i++) {
			for (int j = 0; j < board[0].length; j++) {
				if (board[i][j] == word.charAt(0)) {
					visit = new boolean[board.length][board[0].length];
					result = result || existDP(board, word, visit, i, j, 0);
				}
			}
		}
		return result;

	}