#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define pb push_back
#define int long long
const int N = 1e6 + 5, M = 1e9 + 7, LG = 20;
int n , F[N] , i , q;
string s , t;
char x;
void add(int i , int x){
    while(i <= n){
        F[i] += x;
        i += (i&(-i));
    }
}
int prep(int i){
    int sum = 0;
    while(i >= 0){
        sum += F[i];
        if (!i) break;
        i -= (i&(-i));
    }
    return sum;
}
void solve(){
    cin >> n >> q >> s >> t;
    if (n&1){
        for (int i = 0 ; i < n ; i++){
            if (i&1) add(i+1 , -(s[i] - 'a'));
            else add(i+1 , s[i] - 'a');
        }
        int sum = 0;
        for (int i = 0 ; i < n ; i++){
            if (i&1){
                sum -= t[i] - 'a';
            }else{
                sum += t[i] - 'a';
            }
        }
        // cout << prep(n) << endl;
        if (prep(n)%26 == sum%26){
            cout << "da" << endl;
        }else{
            cout << "ne" << endl;
        }
        // int k = s[n-1] - 'a';
        // for (int i = n-2 ; i >=0  ; i--){
        //     // cout << k << ' ';
        //     k = (s[i] - 'a') + 25 - k;
        //     k %= 26;
        //     if (i&1) add(i+1 , -(s[i] - 'a' + 1));
        //     else add(i+1 , s[i] - 'a' + 1);
        // }
        // int sum = t[n-1] - 'a';
        // for (int i = n-2 ; i >= 0 ; i--){
        //     sum = (t[i] - 'a') + 25 - sum;
        //     sum %= 26;
        // }
        // // cout << k << ' ' << sum << endl;
        // if (k == sum){
        //     cout << "da" << endl;
        // }else{
        //     cout << "ne" << endl;
        // }
        while(q--){
            cin >> i >> x;
            s[i-1] = x;
            int k = s[n-1] - 'a' + 1;
            for (int i = n-2 ; i >=0  ; i--){
                // cout << k << ' ';
                k = (s[i] - 'a' + 1) + 26 - k;
                k %= 27;
                k++;
                // if (i&1) add(i+1 , -(s[i] - 'a' + 1));
                // else add(i+1 , s[i] - 'a' + 1);
            }
            if (k == sum){
                cout << "da" << endl;
            }else{
                cout << "ne" << endl;
            }
            // if (i&1) add(i , (x - 'a' + 1) - (s[i-1] - 'a' + 1));
            // else add(i , -(x - 'a' + 1) + (s[i-1] - 'a' + 1));
            // // cout << prep(n) << ' ' << sum << endl;
            // if (prep(n) % 26 == sum % 26){
            //     cout << "da" << endl;
            // }else{
            //     cout << "ne" << endl;
            // }
        }
    }else{
        for (int i = 0 ; i < n ; i++){
            if (i&1) add(i+1 , (s[i] - 'a'));
            else add(i+1 , -(s[i] - 'a'));
        }
        int sum = 0;
        for (int i = 0 ; i < n ; i++){
            if (i&1){
                sum += t[i] - 'a';
            }else{
                sum -= t[i] - 'a';
            }
        }
        if (prep(n)%26 == sum%26){
            cout << "da" << endl;
        }else{
            cout << "ne" << endl;
        }
        while(q--){
            cin >> i >> x;
            if (i&1) add(i , -(x - 'a' + 1) + (s[i-1] - 'a' + 1));
            else add(i , (x - 'a' + 1) - (s[i-1] - 'a' + 1));
            if (prep(n) == sum){
                cout << "da" << endl;
            }else{
                cout << "ne" << endl;
            }
        }
    }
}
signed main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int ts = 1;
    // cin >> ts;
    while(ts--){
        solve();
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |