{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cscript type\u003d\u0027text/x-mathjax-config\u0027\u003eMathJax.Hub.Config({tex2jax: { inlineMath: [[\u0027$\u0027,\u0027$\u0027]] } }); \u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027 src\u003d\u0027https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\u0027\u003e\u003c/script\u003e\n\u003cscript type\u003d\u0027text/javascript\u0027\u003esetTimeout(function(){MathJax.Hub.Queue([\u0027Typeset\u0027, MathJax.Hub, \u0027left_view\u0027]);}, 2000);\u003c/script\u003e\n\u003ch1\u003e题目描述\u003c/h1\u003e\n\u003cdiv class\u003d\"panel_content\"\u003e\n\u003cp\u003e猪猪们住在一棵拥有n个节点的树上。这棵树的树根总是1号节点,在这棵树上,一个节点的深度被定义为它到根节点路径上的节点数量。\u003c/p\u003e\n\u003cp\u003e这天,三年一班突然发生了非常重要的事,那就是小猪猪王菜苗不见了!为了能够快速地发动更多的猪一起找猪,他们点燃了狼烟,这是他们与三年二班的约定:一旦狼烟升起,必然是发生了紧急事件需要通知。\u003c/p\u003e\n\u003cp\u003e然而这个通知并不需要所有的猪在场。只需要由一个三年一班的猪猪与一个三年二班的猪猪集合到某个地点并传达消息就可以达到目的。具体地来说,如果这两名猪猪分别位于u号节点和v号节点,那么他们的集合地点就是在这棵树上u、v两点的最近公共祖先处。在猪猪们眼中,集合的地点深度越深跑到那所花费的力气越小,就能够更快地将这个消息传达出去。\u003c/p\u003e\n\u003cp\u003e你现在需要对于m种情形分别进行计算。在一种特定的情形中,三年一班的猪猪所在的树上节点集合和三年二班的猪猪所在的树上节点集合都会给出。你需要从三年一班的猪猪当中选出一位、三年二班的猪猪当中选出一位,你的目标是尽可能最大化选出两个位置在树上最近公共祖先的深度。\u003c/p\u003e\n\u003cp\u003e菜苗的性命如今就掌握在你手里。\u003c/p\u003e\n\u003c/div\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ch2\u003e输入格式\u003c/h2\u003e\n\u003cp\u003e输入包含多组数据。对于每一组数据:\u003c/p\u003e\n\u003cul\u003e\u003cli\u003e第一行包含两个整数n,m。分别表示树上节点数和情形数量。其中1\u003c\u003dn\u003c\u003d1e5,1\u003c\u003dm\u003c\u003d1e5。\u003cli\u003e 接下来n-1行,每行包含两个整数描述一条树上的无向边。\u003cli\u003e接下来2m行,每两行描述一个情形。其中第一行描述三年一班的猪猪所在节点集合,第二行描述三年二班的猪猪所在的节点集合。在每个集合的描述当中,第一位数字k都表示该集合的元素个数,接下来k个数给出集合当中的每个元素。\u003c/ul\u003e\n\u003cp\u003e\u003cb\u003e注意:给出的集合不保证元素不重复。\u003c/b\u003e保证在一组数据当中所有的集合大小(即k)之和不超过1e5。保证数据组数不超过5组。\u003c/p\u003e\n"}},{"title":"","value":{"format":"HTML","content":"\u003ch2\u003e输出格式\u003c/h2\u003e\n\u003cp\u003e对于每组数据的每个情形,输出一行一个数表示最大的集合地点深度。\u003c/p\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ch3\u003e样例输入\u003c/h3\u003e\n\u003cpre\u003e7 3\n1 2\n1 3\n3 4\n3 5\n4 6\n4 7\n1 6\n1 7\n2 6 7\n1 7\n2 5 4\n2 3 2\u003c/pre\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ch3\u003e样例输出\u003c/h3\u003e\n\u003cpre\u003e3\n4\n2\u003c/pre\u003e"}}]}