private long permutaion(int hit[], int list[], int count, int k) {
		if (count == 0) {
			int sum = 0;
			for (int i = 0; i < hit.length; i++) {
				sum += Math.max(list[hit[i] - 1], i + 1);
			}
			if (sum >= k) {
				return 1;
			}
			return 0;
		} else {
			int c = 0;
			int[] tmp = hit.clone();
			for (int i = 0; i < list.length; i++) {
				if (tmp[i] == 0) {
					tmp[i] = count;
					long ret = permutaion(tmp, list, count - 1, k);
					c += ret;
					tmp = hit.clone();
				}
			}
			return c;
		}
	}