#pragma GCC optimize("O3") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("unroll-loops") #include #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define files(name) name!=""?freopen(name".in","r",stdin),freopen(name".out","w",stdout):0 #define all(a) a.begin(),a.end() #define len(a) (int)(a.size()) #define elif else if #define mp make_pair #define pb push_back #define fir first #define sec second using namespace std; #define int long long typedef unsigned long long ull; typedef pair pii; typedef vector vi; typedef long double ld; typedef long long ll; const int arr=2e5+10; const int ar=2e3+10; const ld pi=acos(-1); const ld eps=1e-10; const ll md=1e9+7; ///---program start---/// int a[arr]; int p[arr]; void solve() { int n,k; cin>>n>>k; for (int i=1;i<=n;i++){ cin>>a[i]; } for (int i=1;i<=n;i++){ p[i]=i; } int ans=0; do{ int cnt=0; for (int i=1;i<=n;i++){ if (a[i]&&a[i]!=p[i]){ cnt-=100; } } for (int i=2;i<=n;i++){ if (p[i]>p[i-1]){ cnt++; } } ans+=(cnt==k); } while (next_permutation(p+1,p+n+1)); cout<>test; while (test--){ solve(); } }