void DFS(String s, int start, ArrayList<String> tmp, ArrayList<ArrayList<String>> res) {
		if (start == s.length()) {
			res.add(new ArrayList(tmp));
		}
		for (int i = start; i < s.length(); ++i) {
			if (isPalindrome(s, start, i)) {
				tmp.add(s.substring(start, i + 1));
				DFS(s, i + 1, tmp, res);
				tmp.remove(tmp.size() - 1);
			}
		}
	}