#135. 二叉树的秘密

二叉树的秘密

题目描述

新年伊始,飞神买了一棵二叉树,好有钱啊。

传闻这棵二叉树的某一个节点上隐藏着上古的秘密,于是飞神开始昼夜不息的寻找。本着不遗漏任何一个节点的原则,飞神打算遍历整棵二叉树。设 SS 为飞神当前所处的节点。遍历规则如下:

  • SS 有两个子节点 L,RL,R,则飞神总是先去遍历节点较少的那棵子树,然后再去遍历另一棵子树,若两棵子树的节点数相等,则飞神会先去遍历编号较小的那棵。
  • SS 有一个子节点 LL,则飞神就去遍历以 LL 为根结点的子树。
  • SS 是叶子节点,则飞神会返回到 SS 的父节点。
  • 当飞神遍历完以 SS 为根的子树时就会返回到 SS 的父节点。
  • 当飞神在某个节点发现宝藏时,遍历结束。

开始时,飞神在根结点。

现在给你一棵有 nn 个节点的二叉树 TT,节点编号从 11nn,节点 11 为根结点。

再给你藏有秘密的节点数 XX,请你计算出我飞需要访问的节点个数,重复访问的只记一次。

输入格式

本题有多组输入,对于每组输入:

第一行包含两个个整数 n,x(1xn104)n,x(1 \leq x \leq n \leq 10^4),分别代表节点个数及藏宝节点编号。

接下来的 nn 行,每行的第一个数为 k(0k2)k(0 \leq k \leq 2),代表第 ii 个节点的子节点个数。继续读入 kk 个整数,代表第 ii 个节点的 kk 个子节点,详见样例及提示。保证数据合法。

输出格式

对于每组数据,输出一行一个整数代表答案。

样例

5 5
2 2 3
0
2 4 5
0
0
5 1
2 2 3
0
2 4 5
0
0
5
1

解释#1

飞神的遍历路线为 1->2->1->3->4->3->5。

说明