public void process(String a, String b) {
		char[] input = a.toCharArray();
		char[] pat = b.toCharArray();
		int[] shouldFind = new int[256];
		int[] hasFound = new int[256];
		for (int i = 0; i < pat.length; i++)
			shouldFind[pat[i]]++;
		Comparison.PRINT(shouldFind);
		int l = 0;
		int diff = 0;
		char c;
		int allCovered = pat.length;
		int min = Integer.MAX_VALUE;
		int s = 0, f = 0;
		for (int i = 0; i < input.length; i++) {
			c = input[i];

			if (shouldFind[c] > 0) {// This is a relevant character

				hasFound[c]++;
				diff = shouldFind[c] - hasFound[c];
				if (diff >= 0)
					allCovered--;
				if (allCovered == 0) {

					while (shouldFind[input[l]] == 0 || ((hasFound[input[l]] - shouldFind[input[l]]) > 0)) {
						l++;
						if ((hasFound[input[l]] - shouldFind[input[l]]) > 0)
							hasFound[input[l]]--;

					}
					if ((i - l) < min) {
						min = i - l;
						s = l;
						f = i;
					}
				}
			}
		}
		System.out.println(min + 1 + " " + s + ":" + f);
	}