func_code_string: #include <bits/stdc++.h>   using namespace std;   char q[15][15], p[15][15], max_s[15], min_s[15], tmp[15], ans[15];   int np[15];   int main() {     int i, j, k, n, carry, t, flag;     while (scanf( %d %d , &n, &k) != EOF) {       for (i = 0; i < n; ++i) scanf( %s , q + i);       for (i = 0; i < k; ++i) {         np[i] = i;         ans[i] =  9 ;       }       ans[i] =   0 ;       do {         for (i = 0; i < k; ++i) {           min_s[i] =  9 ;           max_s[i] =  0 ;         }         min_s[i] =   0 ;         max_s[i] =   0 ;         for (i = 0; i < n; ++i) {           for (j = 0; j < k; ++j) {             p[i][j] = q[i][np[j]];           }           p[i][j] =   0 ;           if (strcmp(p[i], min_s) < 0) strcpy(min_s, p[i]);           if (strcmp(p[i], max_s) > 0) strcpy(max_s, p[i]);         }         carry = 0;         for (i = k - 1; i >= 0; --i) {           t = max_s[i] - min_s[i] - carry;           if (t < 0) {             carry = 1;             t += 10;           } else             carry = 0;           tmp[i] = t +  0 ;         }         tmp[k] =   0 ;         if (strcmp(tmp, ans) < 0) strcpy(ans, tmp);       } while (next_permutation(np, np + k));       flag = 0;       for (i = 0; i < k; ++i) {         if (ans[i] ==  0 ) {           if (flag != 0) printf( %c , ans[i]);         } else {           if (flag == 0) flag = 1;           printf( %c , ans[i]);         }       }       if (flag == 0)         printf( 0 n );       else         printf(  n );     }     return 0;   }   