#include using namespace std; const int mod = 167772161; int ki[400][400] = {}; vector v; int n, k; void kiir(vector> dp){ cout<<"dp:\n"; for(vector v : dp){ for(int &x : v) cout<> &dp, int c){ //cout<<"c: "< 0; i--){ for(int j = k; j >= c; j--){ dp[i][j] = (dp[i][j] + dp[i-1][j-c])%mod; //cout<<"("<> dp, int l, int r){ if(l+1 >= r){ /*cout<<"ind: "< v : dp){ for(int x : v) cout<> dpL = dp, dpR = dp; for(int i = m; i < r; i++) calcDP(dpL, v[i]); for(int i = l; i < m; i++) calcDP(dpR, v[i]); megold(dpL, l, m); megold(dpR, m, r); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>k; v.resize(n); for(int &x : v) cin>>x; vector> dp(n+1, vector(k+1, 0)); dp[0][0] = 1; megold(dp, 0, n); for(int i = 0; i < n; i++){ for(int j = 1; j < n; j++) cout<