“Nanozavod, Inc.” 公司专门从事纳米机器人的设计和组装。现在他们在漫长的道路上遇到了另一个问题。人工关节需要精确长度的纳米带。开发人员可以制造已知长度的纳米带段,但它们太长了。现在他们正试图将一个线段切成长度相等的两部分。
纳米切割器看起来像一个空心的多棱柱,里面还有另一个棱柱。内棱柱具有非常锋利的棱,用于切割纳米带:当一段纳米带接触到内棱柱的任何一条棱时,它会立即在接触点被切断。不幸的是,如果纳米带与内棱柱的接触不仅是一个点,而是一段较长的线段(例如,它同时接触了棱柱的整条棱),那么整段纳米带就会被完全损毁。外棱柱用于固定纳米带:纳米带的两个端点必须放置在外棱柱的侧面上。纳米带的张力是完全均匀的。
因此,开发人员现在必须在外棱柱的侧面上找到两个点,使得连接这两个点的线段与内棱柱恰好有一个公共点,且该公共点是该线段的中点。
连接两个棱柱底面的所有侧棱都是平行的,因此问题可以简化为棱柱底面的相同二维问题。
两个棱柱顶点的坐标均为整数,底面顶点形成两个严格凸的多边形(即多边形没有 $180$ 度的角)。内多边形严格位于外多边形内部(它们的边界没有公共点)。你的任务是找到满足问题条件的任意线段端点的坐标。保证至少存在一个这样的线段。
输入格式
第一行输入包含两个整数:$M$ 表示外多边形的顶点数,$N$ 表示内多边形的顶点数($3 \le M, N \le 3 \cdot 10^5$)。
接下来的 $M + N$ 行每行包含两个整数 $x$ 和 $y$($|x|, |y| \le 10^7$),表示多边形顶点的坐标(前 $M$ 行为外多边形,接下来的 $N$ 行为内多边形)。每个多边形的顶点按逆时针顺序给出。
保证内多边形严格位于外多边形内部。
输出格式
输出四个实数 $x_1, y_1, x_2, y_2$,表示纳米带端点的坐标。
坐标的绝对误差不能超过 $\varepsilon = 10^{-4}$(即,必须存在该问题的一个精确解 $(X_1, Y_1, X_2, Y_2)$ 满足 $|x_1 - X_1| < \varepsilon$ 等)。如果存在多个答案,输出其中任意一个即可。
样例
输入样例 1
3 3 0 0 4 0 0 4 1 1 2 1 1 2
输出样例 1
2.000000 0.000000 2.000000 2.000000