#include void print (int N, int matrix[2][N+1]){ for (int i = 0; i <2; i++){ for (int j=1; j<=N; j++){ printf("%d ", matrix[i][j]); } putchar('\n'); } } int main(int argc, char const *argv[]) { int N, C; if (2 != scanf("%d %d ", &N, &C)){ printf("ERROR\n"); return 1; } int matrix[2][N+1]; //odd, +multigroup/-0 even in multigroup char op; int num; int multigroup = 1; //1st num if (1 != scanf("%d ", &num)){ printf("Error!\n"); return 1; } matrix[0][1] = num %2; matrix[1][1] = -(num%2 == 0); multigroup = 1; for (int i=2; i <= N; i++){ if (2 != scanf("%c %d ", &op, &num)){ printf("ERROR!\n"); return 1; } matrix[0][i] = num %2; if (op == '*'){ matrix[1][i] = multigroup; matrix[1][multigroup] -= (num%2 == 0); } else { matrix[1][i] = -(num%2 == 0); multigroup = i; } } int whole = 0; for (int i = 1; i <= N; i++){ if (matrix[1][i] == 0){ whole++; } } whole %= 2; printf(whole?"odd\n":"even\n"); int which, what; for (int i=0; i < C; i++){ //print(N, matrix);/////////////////////////////////////////// //printf(">%d<\n", i); if (2 != scanf("%d %d ", &which, &what)){ printf("ERROR!!\n"); return 1; } if (what%2 == matrix[0][which]){ printf(whole?"odd\n":"even\n"); continue; } int old_what = matrix[0][which]; matrix[0][which] = what%2; if (matrix[1][which] > 0){ which = matrix[1][which]; } int old_num_of_even = matrix[1][which]; matrix[1][which] += 1 -2*old_what; if (matrix[1][which] == 0 || old_num_of_even == 0){ whole++; whole%=2; } printf(whole?"odd\n":"even\n"); } return 0; }