编辑代码

n, q = map(int, input().split())
maps, mapscut = [], []
k = n * n
for i in range(n):
    for j in range(n):
        mapscut += [(i + j) % 2]
    maps += [mapscut]
    mapscut = []
for s in range(q):
    opt, a = map(lambda x : x - 1, map(int, input().split()))
    mapscut, mapsbit = [], []
    if opt:
        if a == 0:
            for i in [0, 1]:
                for j in range(n):
                    mapsbit += [maps[j][i]]
                mapscut += [mapsbit]
                mapsbit = []
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]]
                    k += [0, -1][mapsbit[0] != mapsbit[1]] + [0, 1][mapsbit[0] == mapsbit[1]]
        elif a == n - 1:
            for i in [a, a - 1]:
                for j in range(n):
                    mapsbit += [maps[j][i]]
                mapscut += [mapsbit]
                mapsbit = []
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]]
                    k += [0, -1][mapsbit[0] != mapsbit[1]] + [0, 1][mapsbit[0] == mapsbit[1]]
        else:
            for i in [a + 1, a, a - 1]:
                for j in range(n):
                    mapsbit += [maps[j][i]]
                mapscut += [mapsbit]
                mapsbit = []
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]] + [mapscut[2][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]] + [mapscut[2][i]]
                    k += [0, -2][mapsbit[0] == mapsbit[2] and mapsbit[0] != mapsbit[1]] + [0, 2][mapsbit[0] == mapsbit[2] and mapsbit[0] == mapsbit[1]]
        for i in range(n):
            maps[i][a] = [1, 0][maps[i][a]]
    else:
        if a == 0:
            mapscut = [maps[0]] + [maps[1]]
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]]
                    k += [0, -1][mapsbit[0] != mapsbit[1]] + [0, 1][mapsbit[0] == mapsbit[1]]
        elif a == n - 1:
            mapscut = [maps[a]] + [maps[a - 1]]
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]]
                    k += [0, -1][mapsbit[0] != mapsbit[1]] + [0, 1][mapsbit[0] == mapsbit[1]]
        else:
            mapscut = [maps[a + 1]] + [maps[a]] + [maps[a - 1]]
            for i in range(n):
                if mapsbit != [mapscut[0][i]] + [mapscut[1][i]] + [mapscut[2][i]]:
                    mapsbit = [mapscut[0][i]] + [mapscut[1][i]] + [mapscut[2][i]]
                    k += [0, -2][mapsbit[0] == mapsbit[2] and mapsbit[0] != mapsbit[1]] + [0, 2][mapsbit[0] == mapsbit[2] and mapsbit[0] == mapsbit[1]]
        for i in range(n):
            maps[a][i] = [1, 0][maps[a][i]]
    print(k)