可变参数快读

template <typename T>
inline void read(T & x) {
	long long f = 1;
	char c = getchar();
	while (c < '0' || c > '9') {
		if (c == '-') {
			f = -1;
		}
		c = getchar();
	}
	x = 0;
	while (c >= '0' && c <= '9') {
		x = (x << 3) + (x << 1) + c - '0';
		c = getchar();
	}
	x *= f;
}
template <typename T, typename ... Args>
inline void read(T & tmp, Args & ... tmps) {
	read(tmp);
	read(tmps ...);
}