дейлик https://leetcode.com/problems/last-day-where-you-can-still-cross
class Solution:
def latestDayToCross(self, r: int, c: int, s: List[List[int]]) -> int:
v=range;w=set();u=''.join(['AB'[n%c>0],chr(n+66)][0<n%c<c-1]for n in v(r*c));return next(i for i,(p,q)in enumerate(s)if(w.add((x:=p-1,y:=q-1))or[u:=u.replace(u[x*c+y],u[b*c+a])for b in v(x-1,x+2)for a in v(y-1,y+2)if(b,a)in w])!=u[0]==u[-1])