func_code_string: #include <bits/stdc++.h>   using namespace std;   struct node {     string st;     int l;   };   int n, k, cnt = 0, m;   node a[1000];   bool cmp(const node &x, const node &y) { return (x.l < y.l); }   bool substring(string s1, string s2) {     for (int i = 0; i <= s2.length() - s1.length(); i++) {       bool flag = 1;       for (int j = 0; j < s1.length(); j++) {         if (s2[i + j] != s1[j]) {           flag = 0;           break;         }       }       if (flag) return 1;     }     return 0;   }   bool judge(void) {     for (int i = 1; i < n; i++) {       if (!substring(a[i].st, a[i + 1].st)) {         return 0;       }     }     return 1;   }   int main() {     cin >> n;     for (int i = 1; i <= n; i++) {       cin >> a[i].st;       a[i].l = a[i].st.length();     }     sort(a + 1, a + n + 1, cmp);     if (judge()) {       cout <<  YES  << endl;       for (int i = 1; i <= n; i++) {         cout << a[i].st << endl;       }     } else {       cout <<  NO  << endl;     }     return 0;   }   