func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 255;   int parent[N];   int ra[N];   void make_set(int v) {     parent[v] = v;     ra[v] = 0;   }   int find_set(int v) {     if (v == parent[v]) return v;     return parent[v] = find_set(parent[v]);   }   void union_sets(int a, int b) {     a = find_set(a);     b = find_set(b);     if (a != b) {       if (ra[a] < ra[b]) swap(a, b);       parent[b] = a;       if (ra[a] == ra[b]) ++ra[a];     }   }   string s[N];   int main() {     cout.sync_with_stdio(false);     cin.tie(0);     int n, m;     cin >> n >> m;     for (int i = 0; i < n; i++) {       cin >> s[i];     }     for (int i = 0; i < n; i++) make_set(i);     for (int j = 0; j < m; j++) make_set(100 + j);     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         if (s[i][j] ==  # ) {           union_sets(i, 100 + j);         }       }     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         if (s[i][j] ==  #  && find_set(i) != find_set(100 + j)) {           cout <<  No ;           return 0;         }         if (s[i][j] !=  #  && find_set(i) == find_set(100 + j)) {           cout <<  No ;           return 0;         }       }     }     cout <<  Yes ;     return 0;   }   