#include int A[256][2]; int n; int maxx; int ta, tb, tc; int ma, mb, mc; bool online(int k, int i, int j) { ta = A[i][1] - A[j][1]; tb = -(A[i][0] - A[j][0]); tc = -(ta*A[i][0] + tb*A[i][1]); return (A[k][0]*ta + A[k][1]*tb + tc == 0); } void solve(void) { maxx = 1; for (int i = 0; i < n; i++) for (int j = i+1; j < n; j++) { int ok = 2; if (A[i][0] == A[j][0] && A[i][1] == A[j][1]) continue; for (int k = j+1; k < n; k++) { if (online(k,i,j)) ok++; } if (ok > maxx) { maxx = ok; ma = ta; mb = tb; mc = tc; } } } int main(void) { int t; //freopen("a.in", "rt", stdin); scanf("%d", &t); while (t--) { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d%d", A[i], A[i]+1); int j = 1; while (j < n && A[0][0] == A[j][0] && A[0][1] == A[j][1]) j++; if (j == n) { ma = A[0][1]; mb = -A[0][0]; mc = 0; } else if (n == 2) { online(0,1,0); ma = ta; mb = tb; mc = tc; } else { solve(); } printf("%d %d %d\n", ma, mb, mc); } return 0; }