func_code_string: #include <bits/stdc++.h>   using namespace std;   using ll = long long;   using ull = unsigned long long;   using str = string;   using srt = short;   const int INF = (int)1e9 + 4;   const int MOD = (int)1e9 + 7;   const int N = 1005;   const ll inf = (ll)4e18;   const ll mod = 998244353;   bool us[N][N];   set<pair<int, int>> ans;   vector<pair<int, int>> arr(3);   vector<pair<int, int>> dirs = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};   int dist(pair<int, int> a, pair<int, int> b) {     return abs(a.first - b.first) + abs(a.second - b.second);   }   void vToV(int st, int en) {     int x1 = arr[st].first, y1 = arr[st].second, x2 = arr[en].first,         y2 = arr[en].second;     ans.insert({x1, y1});     while (x1 != x2 || y1 != y2) {       us[x1][y1] = 1;       if (x1 < x2 && us[x1 + 1][y1]) {         ans.insert({++x1, y1});       } else if (y1 < y2 && us[x1][y1 + 1]) {         ans.insert({x1, ++y1});       } else if (y1 > y2 && us[x1][y1 - 1]) {         ans.insert({x1, --y1});       } else {         int dst = INF;         pair<int, int> dir;         for (auto it : dirs) {           int now = dist({x1 + it.first, y1 + it.second}, {x2, y2});           if (now < dst) {             dir = it;             dst = now;           }         }         x1 += dir.first;         y1 += dir.second;         ans.insert({x1, y1});       }     }   }   int main() {     ios::sync_with_stdio(0);     cin.tie(NULL);     cout.tie(NULL);     for (auto &it : arr) {       cin >> it.first >> it.second;       ans.insert(it);       us[it.first][it.second] = 1;     }     sort(begin(arr), end(arr));     arr.emplace_back(arr.back());     vToV(0, 1);     vToV(1, 2);     cout << ans.size() << endl;     for (auto &it : ans) cout << it.first <<     << it.second << endl;   }   