时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
牛牛有一颗包含

个结点的
二叉树,这些结点编号为

。这颗树被定义为:
1、以结点 1 为根。
2、编号为

结点的
两个儿子编号分别为:

和

。
3、每个结点的权重初始都为 0。
牛牛接下来会对这颗树进行

次操作,操作的格式是以下四种之一:
1、

(这里

)代表牛牛将以编号

为根结点的子树中所有结点的权重 +1。
2、

(这里

)代表牛牛将以编号

为根结点的
子树外的所有结点权重 +1。
3、

(这里

)代表牛牛将根结点到编号

结点的路径上的所有结点权重 +1。
4、

(这里

)代表牛牛将根节点到编号

结点的
路径上的结点之外的所有结点权重 +1。
牛妹想知道当牛牛的所有操作结束之后,树中权重为

的结点的数量分别是多少。
输入描述:
第一行输入两个空格分隔的整数:

。
接下来

行,每行描述了一个牛牛进行的操作。
保证:




输出描述:
输出一行共
个整数,代表答案。