import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import java.util.TreeMap;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Nidhi
*/
//http://w...content-available-to-author-only...f.com/problems/CHFQUEUE
class CHFQUEUE {
long ans = 1;
int n
= Integer.
parseInt(st.
nextToken()); int k
= Integer.
parseInt(st.
nextToken());
int index = 1;
while (st.hasMoreTokens()) {
int a
=Integer.
parseInt(st.
nextToken()); for (Entry
<Integer, List
<Integer
>> e
: tr.
entrySet()) { if (e.getKey() <= a) {
break;
}
for (long m : e.getValue()) {
ans = (long) ((ans * (index - m + 1)) % (10e9 + 7));
}
tr.put(e.getKey(),new ArrayList<Integer>());
}
if (a != 1) {
if (!tr.containsKey(a)) {
tr.put(a, new ArrayList<Integer>());
}
tr.get(a).add(index);
}
index++;
}
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CmltcG9ydCBqYXZhLnV0aWwuU3RyaW5nVG9rZW5pemVyOwppbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CiAKLyoKKiBUbyBjaGFuZ2UgdGhpcyBsaWNlbnNlIGhlYWRlciwgY2hvb3NlIExpY2Vuc2UgSGVhZGVycyBpbiBQcm9qZWN0IFByb3BlcnRpZXMuCiogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgZmlsZSwgY2hvb3NlIFRvb2xzIHwgVGVtcGxhdGVzCiogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiovCi8qKgoqCiogQGF1dGhvciBOaWRoaQoqLwovL2h0dHA6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5mLmNvbS9wcm9ibGVtcy9DSEZRVUVVRQpjbGFzcyBDSEZRVUVVRSB7CiAKcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5pbikpOwpTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKGJyLnJlYWRMaW5lKCksICIgIik7CmxvbmcgYW5zID0gMTsKVHJlZU1hcDxJbnRlZ2VyLCBMaXN0PEludGVnZXI+PiB0ciA9IG5ldyBUcmVlTWFwPEludGVnZXIsIExpc3Q8SW50ZWdlcj4+KENvbGxlY3Rpb25zLnJldmVyc2VPcmRlcigpKTsKIAppbnQgbiA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCkpOwppbnQgayA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCkpOwogCnN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihici5yZWFkTGluZSgpLCAiICIpOwppbnQgaW5kZXggPSAxOwp3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CmludCBhID1JbnRlZ2VyLnBhcnNlSW50KHN0Lm5leHRUb2tlbigpKTsKZm9yIChFbnRyeTxJbnRlZ2VyLCBMaXN0PEludGVnZXI+PiBlIDogdHIuZW50cnlTZXQoKSkgewppZiAoZS5nZXRLZXkoKSA8PSBhKSB7CmJyZWFrOwp9CmZvciAobG9uZyBtIDogZS5nZXRWYWx1ZSgpKSB7CmFucyA9IChsb25nKSAoKGFucyAqIChpbmRleCAtIG0gKyAxKSkgJSAoMTBlOSArIDcpKTsKfQp0ci5wdXQoZS5nZXRLZXkoKSxuZXcgQXJyYXlMaXN0PEludGVnZXI+KCkpOwp9CiAKaWYgKGEgIT0gMSkgewppZiAoIXRyLmNvbnRhaW5zS2V5KGEpKSB7CnRyLnB1dChhLCBuZXcgQXJyYXlMaXN0PEludGVnZXI+KCkpOwp9CnRyLmdldChhKS5hZGQoaW5kZXgpOwogCn0KIAppbmRleCsrOwp9CiAKU3lzdGVtLm91dC5wcmludGxuKGFucyk7Cn0KfQ==
NTAgMTAgCjEgMiAzIDQgNSA2IDcgOCA5IDEwIDEgMiAzIDQgNSA2IDcgOCA5IDEwIDEgMiAzIDQgNSA2IDcgOCA5IDEwIDEgMiAzIDQgNSA2IDcgOCA5IDEwIDEgMiAzIDQgNSA2IDcgOCA5IDEw
50 10
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10