#include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; #define pb push_back #define all(x) (x).begin(), (x).end() #define sqr(x) ((x) * (x)) #define X first #define Y second #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define REP(i, n) FOR (i, 0, n) #define TRACE(x) cout << #x << " = " << x << endl #define _ << " _ " << #define debug(...) fprintf(stderr, __VA_ARGS__) #define MAXN 401 #define MOD 167772161 #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") int n, k; ll we[MAXN]; vector w; int dpl[MAXN][MAXN][MAXN]; //int dpr[MAXN][MAXN][MAXN]; ll pre[MAXN]; int main() { time_t tt = clock(); scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) { scanf("%lld", &we[i]); } for (int wo = 0; wo < n; wo++) { for (int i = 0; i < n + 1; i++) { dpl[i][0][0] = 1; } w.clear(); for (int i = 0; i < n; i++) { if (wo == i) continue; w.pb(we[i]); } sort(w.begin(), w.end()); for (int i = 0; i < n - 1; i++) { pre[i] = (i ? pre[i - 1] : 0) + w[i]; } //reverse(w.begin(), w.end()); //for (int i: w) printf("%d ", i);cout<= MOD) dpl[i][j][l] -= MOD; //cout << i <<' ' <