func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = 1e9;   int dp[55][8], d1[55], d2[55], d3[55], n, m;   string s;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cin >> n >> m;     for (int i = 1; i <= n; ++i) {       cin >> s;       d1[i] = inf;       d2[i] = inf;       d3[i] = inf;       for (int j = 0; j < s.size(); ++j) {         if (s[j] >=  a  && s[j] <=  z ) {           d1[i] = min(d1[i], min(j, (int)s.size() - j));         } else if (s[j] >=  0  && s[j] <=  9 ) {           d2[i] = min(d2[i], min(j, (int)s.size() - j));         } else {           d3[i] = min(d3[i], min(j, (int)s.size() - j));         }       }     }     for (int i = 0; i < 8; ++i) {       dp[0][i] = inf;     }     dp[0][0] = 0;     for (int i = 1; i <= n; ++i) {       dp[i][0] = dp[i - 1][0];       dp[i][1] = min(dp[i - 1][1], dp[i - 1][0] + d1[i]);       dp[i][2] = min(dp[i - 1][2], dp[i - 1][0] + d2[i]);       dp[i][4] = min(dp[i - 1][4], dp[i - 1][0] + d3[i]);       dp[i][3] =           min(dp[i - 1][3], min(dp[i - 1][1] + d2[i], dp[i - 1][2] + d1[i]));       dp[i][5] =           min(dp[i - 1][5], min(dp[i - 1][1] + d3[i], dp[i - 1][4] + d1[i]));       dp[i][6] =           min(dp[i - 1][6], min(dp[i - 1][2] + d3[i], dp[i - 1][4] + d2[i]));       dp[i][7] = min(min(dp[i - 1][7], dp[i - 1][6] + d1[i]),                      min(dp[i - 1][5] + d2[i], dp[i - 1][3] + d3[i]));     }     cout << dp[n][7];   }   