static int KMP(char[] p, char[] t) {
		int i = 0, j = 0, m = p.length, n = t.length, len = 0;
		while (i < n) {
			while (j >= 0 && t[i] != p[j])
				j = b[j];
			i++;
			j++;
			len = Math.max(len, j);
			if (j == m)
				j = b[j];
		}
		return len;
	}