#include #include #include #include #include #include #define N 520 using namespace std; int n, m, ans, dp[N][N]; struct Point{ int x, y; Point() {} Point(int _x, int _y):x(_x), y(_y) {} friend Point operator - (Point A, Point B){return Point(A.x - B.x, A.y - B.y);} }hou[N], fri[N]; int Det(Point A, Point B){return A.x * B.y - A.y * B.x;} int main(){ while(~ scanf("%d", &n)){ for(int i = 1; i <= n; i++) scanf("%d%d", &hou[i].x, &hou[i].y); scanf("%d", &m); for(int i = 1; i <= m; i++) scanf("%d%d", &fri[i].x, &fri[i].y); for(int i = 1; i <= m; i++) for(int j = 1; j <= m; j++){ dp[i][j] = -1; if(i == j) continue; bool ok = true; for(int k = 1; k <= n; k++) if(Det(hou[k] - fri[i], fri[j] - fri[i]) > 0){ ok = false; break; } if(ok) dp[i][j] = 1; } for(int k = 1; k <= m; k++) for(int i = 1; i <= m; i++){ if(dp[i][k] == -1) continue; for(int j = 1; j <= m; j++){ if(dp[k][j] == -1) continue; if(dp[i][j] == -1 || dp[i][k] + dp[k][j] < dp[i][j]) dp[i][j] = dp[i][k] + dp[k][j]; } } ans = -1; for(int i = 1; i <= m; i++){ if(dp[i][i] == -1) continue; if(ans == -1 || dp[i][i] < ans) ans = dp[i][i]; } if(ans == -1) puts("ToT"); else printf("%d\n", m - ans); } return 0; }