func_code_string: #include <bits/stdc++.h>   using namespace std;   int i, j, k, n, v, e, x, y, a[300], b[300], d[300][300], S, X[1 << 20],       Y[1 << 20], D[1 << 20];   void m(int x, int y, int f) {     if (d[x][y] == 1) {       if (f) {         a[y] -= f, a[x] += f, X[S] = y, Y[S] = x, D[S] = f;         S++;       };     } else {       int z;       for (z = 0; z < n; z++)         if (d[x][z] == 1 && 1 + d[z][y] == d[x][y]) break;       if (a[z] >= f) {         if (f) {           a[z] -= f, a[x] += f, X[S] = z, Y[S] = x, D[S] = f;           S++;         };         m(z, y, f);       } else {         int t = a[z];         if (t) {           a[z] -= t, a[x] += t, X[S] = z, Y[S] = x, D[S] = t;           S++;         };         f -= t;         m(z, y, t + f);         if (f) {           a[z] -= f, a[x] += f, X[S] = z, Y[S] = x, D[S] = f;           S++;         };       }     }   }   int main() {     cin >> n >> v >> e;     for (i = 0; i < n; i++) cin >> a[i];     for (i = 0; i < n; i++) cin >> b[i];     memset(d, 63, sizeof d);     for (i = 0; i < e; i++) {       cin >> x >> y;       x--, y--;       d[x][y] = d[y][x] = 1;     }     for (k = 0; k < n; k++)       for (i = 0; i < n; i++)         for (j = 0; j < n; j++) d[i][j] = min(d[i][j], d[i][k] + d[k][j]);     for (i = 0; i < n; i++)       for (j = 0; j < n; j++)         if (d[i][j] < n && a[i] < b[i] && a[j] > b[j])           m(i, j, min(b[i] - a[i], a[j] - b[j]));     for (i = 0; i < n; i++)       if (a[i] != b[i]) {         cout <<  NO n ;         return 0;       }     cout << S <<   n ;     for (i = 0; i < S; i++)       cout << X[i] + 1 <<     << Y[i] + 1 <<     << D[i] <<   n ;     return 0;   }   