Всем привет. Кто поможет с задачей?(Runtime error в системе)
Дана прямоугольная таблица A размера N × M . В ней требуется посчитать, сколько связных фигур из закрашенных клеток образуют прямоугольники. Связная фигура — фигура из соединенных между собой закрашенных клеток, соседних по сторонам. Прямоугольник должен быть со всех сторон окружен пустыми клетками или границами поля.
Формат ввода
В первой строке входных данных записаны два числа
N и M ( 1 ≤ N , M ≤ 2000) — размеры матрицы A . В каждой из следующих N строк записано M символов A i, j , равных ‘#’ (ASCII код 35) или ‘.’ (ASCII код 46), символ ‘#’ означает закрашенную клетку, ‘.’ - пустую.
Формат вывода
Выведите одно число: число закрашенных прямоугольников в исходной матрице.
Пример 1 Ввод Вывод 3 3 3 #.. ..# ##.
Пример 2 Ввод Вывод 5 5 2 ##.## #..## .##.. ###.# .##.#
Вот мой код:
x=0
def dfs(i, j):
global x
if i < 0 or i >= n or j < 0 or j >= m or grid[i][j] == '.':
return
g[x]=str(g[x])+' '+str(i)+'.'+str(j)
grid[i][j] = '.'
dfs(i - 1, j)
dfs(i + 1, j)
dfs(i, j - 1)
dfs(i, j + 1)
def cord():
global x
for i in range(n):
for j in range(m):
if grid[i][j] == '#':
x+=1
dfs(i, j)
return
n, m = map(int, input().split())
if n==1 and m==1:
p=input()
if p=='#':
print('1')
else:
print('0')
g=['hah']*n*m
grid = [list(input().strip()) for _ in range(n)]
cord()
#здесь определили координаты точек и их принадлежность к фигурам (массив g)
for i in range(len(g)):
g[i]=g[i].replace('hah','')
if len(g[i]):
g[i]=g[i][1::]
g[i]+=' '
g = [i for i in g if i]
#удаляем лишнее
count=0
for i in g:
a=['']*3+[-1]*4
n=1
v='x'
for j in i:
if j=='.':
v='y'
elif j==' ':
if a[3]>int(a[1]) or a[3]==-1:
a[3]=int(a[1])
if a[5]<int(a[1]) or a[5]==-1:
a[5]=int(a[1])
if a[4]>int(a[2]) or a[4]==-1:
a[4]=int(a[2])
if a[6]<int(a[2]) or a[6]==-1:
a[6]=int(a[2])
a[1]=''
a[2]=''
v='x'
elif v=='x':
a[1]+=j
elif v=='y':
a[2]+=j
n+=1
if (i.count(' '))==(a[5]-a[3]+1)*(a[6]-a[4]+1):
count+=1
print(count)