func_code_string: #include <bits/stdc++.h>   using namespace std;   long long vp(pair<int, int> a, pair<int, int> b) {     return (long long)a.first * b.second - (long long)a.second * b.first;   }   pair<int, int> mn(pair<int, int> a, pair<int, int> b) {     return make_pair(a.first - b.first, a.second - b.second);   }   int main() {     srand(239);     int n, m;     scanf( %d %d , &n, &m);     if (m == 3) {       if (n > 4) {         printf( -1 n );         return 0;       }       if (n == 3) {         printf( 0 0 n0 1 n1 0 n );         return 0;       }       if (n == 4) {         printf( 0 0 n0 3 n3 0 n1 1 n );         return 0;       }       assert(false);     }     int R1 = 1e7;     int R2 = 2e7;     vector<pair<int, int> > v;     for (int i = 0; i < m; i++) {       v.push_back(           make_pair(R1 * cos(M_PI * 2 * i / m), R1 * sin(M_PI * 2 * i / m)));       if (i < n - m)         v.push_back(make_pair(R2 * cos(M_PI * 2 * i / m + M_PI * 0.0001),                               R2 * sin(M_PI * 2 * i / m + M_PI * 0.0001)));     }     while (1) {       bool good = true;       for (int i = 0; i < n; i++) {         for (int j = i + 1; j < n; j++) {           for (int k = j + 1; k < n; k++) {             if (vp(mn(v[i], v[k]), mn(v[j], v[k])) == 0) {               v[k].first += rand() % 10;               v[k].second += rand() % 10;               good = false;             }           }         }       }       if (good) break;     }     assert((int)(v).size() == n);     for (int i = 0; i < n; i++) {       printf( %d %d n , v[i].first, v[i].second);     }     return 0;   }   