#include #include #include using namespace std; using ll = long long; const ll mod = 1000'000'007; struct Group{ int eval; int odds = 0; int evens = 0; }; int main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; vector a(n); vector g(n); int groupNum = 0; vector group(n); for(int i = 0; i < n - 1; i++){ int A; cin >> A; a[i] = A; group[i] = groupNum; if(A&1) g[groupNum].odds++; else g[groupNum].evens++; char c; cin >> c; if(c == '+' || c == '-'){ groupNum++; } } int A; cin >> A; a[n-1] = A; group[n-1] = groupNum; if(A&1) g[groupNum].odds++; else g[groupNum].evens++; int oddGroups = 0; int evenGroups = 0; for(int i = 0; i <= groupNum; i++){ Group & x = g[i]; if(x.evens == 0){ x.eval = 1; oddGroups++; } else{ x.eval = 2; evenGroups++; } } int value = (oddGroups + evenGroups*2)%2; if(value) cout << "odd" << endl; else cout << "even" << endl; while(m--){ int x, y; cin >> x >> y; x--; if((a[x]^y)&1){ //flip a[x] = y; Group & gr = g[group[x]]; if(y&1){ gr.evens--; gr.odds++; if(gr.evens == 0){ gr.eval = 1; oddGroups++; evenGroups--; } } else { gr.evens++; gr.odds--; if(gr.odds == 0){ gr.eval = 2; evenGroups++; oddGroups--; } } value = (oddGroups + evenGroups*2)%2; } if(value) cout << "odd" << endl; else cout << "even" << endl; } }