f=lambda m,y=-1,x=0:f(m,m[0].find("S"))if y<0else y<len(m[0])-1and x<len(m)and m[x][y]!="="and(m[x][y]=="E"or m[x][y+1]=="="and any(f(m,y-i,x+1)for i in range(5)[:(m[x][y::-1]+"=").find("=")])or f(m,y+1,x))#test cases
##True
s1=[' S=', ' E=']
s2=[' S============', ' =', ' #= =', ' =', ' =', ' =', ' E=']
s3=[' S=', ' E=====']
s4=[' S= ', ' ======', ' =', ' =', ' =', ' E====']
s5=[' S= ==', ' =', ' =', ' E=']
##False
s6=[' S= ', ' ==', ' ', ' ==']
s7=[' S=', ' =', ' ======', ' =', ' E=']
s8=[' S= =', ' = = =', ' = = =', ' =E=']
s9=[' = = =S=', ' = = = =', ' # =', ' = = = ==', ' E= = = ==']
#run the tests
for i in range(1,10):
print(i,eval("f(s{})".format(i)))
Zj1sYW1iZGEgbSx5PS0xLHg9MDpmKG0sbVswXS5maW5kKCJTIikpaWYgeTwwZWxzZSB5PGxlbihtWzBdKS0xYW5kIHg8bGVuKG0pYW5kIG1beF1beV0hPSI9ImFuZChtW3hdW3ldPT0iRSJvciBtW3hdW3krMV09PSI9ImFuZCBhbnkoZihtLHktaSx4KzEpZm9yIGkgaW4gcmFuZ2UoNSlbOihtW3hdW3k6Oi0xXSsiPSIpLmZpbmQoIj0iKV0pb3IgZihtLHkrMSx4KSkjdGVzdCBjYXNlcwojI1RydWUKczE9WycgUz0nLCAnIEU9J10KczI9WycgUz09PT09PT09PT09PScsICcgICAgICAgICAgICAgPScsICcgICAgICAgIz0gICAgPScsICcgICAgICAgICAgICAgPScsICcgICAgICAgICAgICAgPScsICcgICAgICAgICAgICAgPScsICcgICAgICAgICAgICBFPSddCnMzPVsnICAgICBTPScsICcgRT09PT09J10KczQ9WycgICBTPSAgJywgJyA9PT09PT0nLCAnICAgICAgPScsICcgICAgICA9JywgJyAgICAgID0nLCAnICBFPT09PSddCnM1PVsnIFM9ICAgICAgPT0nLCAnICAgICAgICAgID0nLCAnICAgICAgICAgID0nLCAnICAgICAgICAgRT0nXQojI0ZhbHNlCnM2PVsnIFM9ICcsICcgID09JywgJyAgICAnLCAnICA9PSddCnM3PVsnICAgICBTPScsICcgICAgICA9JywgJyA9PT09PT0nLCAnICAgICAgPScsICcgICAgIEU9J10Kczg9WycgUz0gICA9JywgJyAgPSA9ID0nLCAnICA9ID0gPScsICcgICAgPUU9J10Kczk9WycgICA9ID0gPVM9JywgJyAgID0gPSA9ID0nLCAnICAgICMgICAgPScsICcgID0gPSA9ID09JywgJyBFPSA9ID0gPT0nXQoKI3J1biB0aGUgdGVzdHMKZm9yIGkgaW4gcmFuZ2UoMSwxMCk6CiBwcmludChpLGV2YWwoImYoc3t9KSIuZm9ybWF0KGkpKSkK