static ArrayList<Integer> KMP(char[] p) {
		ArrayList<Integer> r = new ArrayList<>();
		int i = 1, j = 0, n = t.length, m = p.length;
		while (i < n) {
			while (j >= 0 && t[i] != p[j])
				j = b[j];
			i++;
			j++;
			if (j == m) {
				if (ids[i - m - 1] != ids[i - m] && ids[i - m] == ids[i - 1])
					r.add(ids[i - 1]);
				j = b[j];
			}
		}
		return r;
	}