/* Wed Nov 8 16:15:18 JST 2006 */ /* Wed Nov 8 16:38:41 JST 2006 */ #include #include using namespace std; bool observable(double sx, double sy, double sz, double tx, double ty, double tz, double phi) { return (phi > acos((sx * tx + sy * ty + sz * tz) / (sqrt(sx * sx + sy * sy + sz * sz) * sqrt(tx * tx + ty * ty + tz * tz)))); } int main() { int n, m, result; double sx[512], sy[512], sz[512]; double tx[64], ty[64], tz[64], phi[64]; while (true) { cin >> n; if (n == 0) { break; } for (int i = 0; i < n; i++) { cin >> sx[i] >> sy[i] >> sz[i]; } cin >> m; for (int i = 0; i < m; i++) { cin >> tx[i] >> ty[i] >> tz[i] >> phi[i]; } result = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (observable(sx[i], sy[i], sz[i], tx[j], ty[j], tz[j], phi[j])) { result++; break; } } } cout << result << endl; } return 0; }