#include\ \n#include\ \nusing namespace std;\n\nstruct Line {\n int k;\n int b;\n};\n\nint main() {\n int n;\n cin >> n;\n\n vector lines;\n for (int i = 0; i < n; i++) {\n int op, k, b;\n cin >> op >> k >> b;\n\n if (op == 1) {\n Line line;\n line.k = k;\n line.b = b;\n lines.push_back(line);\n } else if (op == 2) {\n int count = 0;\n for (int j = 0; j < lines.size(); j++) {\n if (lines[j].k == k && lines[j].b == b) {\n continue;\n }\n\n bool hasCommonPoint = false;\n for (int l = j + 1; l < lines.size(); l++) {\n if (lines[j].k == lines[l].k && lines[j].b == lines[l].b) {\n hasCommonPoint = true;\n break;\n }\n }\n\n if (!hasCommonPoint) {\n count++;\n }\n }\n cout << count << endl;\n } else if (op == 3) {\n vector newLines;\n for (int j = 0; j < lines.size(); j++) {\n if (lines[j].k == k && lines[j].b == b) {\n continue;\n }\n\n bool hasCommonPoint = false;\n for (int l = j + 1; l < lines.size(); l++) {\n if (lines[j].k == lines[l].k && lines[j].b == lines[l].b) {\n hasCommonPoint = true;\n break;\n }\n }\n\n if (!hasCommonPoint) {\n newLines.push_back(lines[j]);\n }\n }\n lines = newLines;\n }\n }\n\n return 0;\n}