#include #include #include using namespace std; int main() { int n, q, len; cin >> n >> q >> len; vector done(n); vector> steps(n); for(auto& x: steps) for(auto& y: x) cin >> y; array moved; moved.fill(0); while(q--) { int x; cin >> x; x--; if(x < 11) moved[x]++; else { int rret = 1e9; int lret = 1e9; vector fin; for(int i = 0; i < n; i++) { if(done[i]) continue; int64_t dist = 0; for(int j = 0; j < 11; j++) { dist += steps[i][j] * moved[j] * (j+1); } if(dist * 2 >= len) { if(dist >= len) done[i] = true, fin.push_back(i+1); else { int64_t need = len - dist; if(len < 4 * need) { if(i < rret) rret = i; else done[i] = true, fin.push_back(i+1); } else done[i] = true, fin.push_back(i+1); } } else { if(len < 4 * dist) { if(i < lret) lret = i; } } } if(fin.size() == 0) cout << "None\n"; else for(int i = 0; i < fin.size(); i++) cout << fin[i] << " \n"[i == fin.size()-1]; if(lret == 1e9 && rret == 1e9) cout << "None\n"; else if(rret != 1e9) cout << rret + 1 << '\n', done[rret] = true; else cout << lret + 1 << '\n', done[lret] = true; moved.fill(0); } } }