#include "rect.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long count_rectangles(std::vector<std::vector<int> > a) {
int n = (int)a.size();
int m = (int)a[0].size();
if (n < 3 || m < 3) return 0;
ll ans = 0;
vector<vector<int>> seen(n, vector<int>(m));
int c1, c2, r1, r2, cnt;
auto dfs = [&](auto dfs, int i, int j) -> void {
if (i < 0 || i == n || j < 0 || j == m) return;
if (seen[i][j] || a[i][j]) return;
seen[i][j] = 1;
cnt++;
r1 = min(r1, i);
r2 = max(r2, i);
c1 = min(c1, j);
c2 = max(c2, j);
dfs(dfs, i+1, j-0);
dfs(dfs, i-1, j+0);
dfs(dfs, i+0, j-1);
dfs(dfs, i-0, j+1);
};
for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (!seen[i][j]) {
r1 = r2 = i;
c1 = c2 = j;
cnt = 0;
dfs(dfs, i, j);
if (r1 != 0 && r2 != n-1 && c1 != 0 && c2 != m-1 && cnt == (c2-c1+1)*(r2-r1+1)) ans++;
}
return ans;
}