public bnode Build(int[] pre, int[] ino, int s, int e)
        {
            if (s > e)
            {
                return(null);
            }

            bnode node = new bnode(pre[curInd++]);

            if (s == e)
            {
                return(node);
            }
            var inIndex = Search(ino, s, e, node.data);

            node.left  = Build(pre, ino, s, inIndex - 1);
            node.right = Build(pre, ino, inIndex + 1, e);
            return(node);
        }
        //public static void Main(string[] args)
        //{
        //    int t = Convert.ToInt32(Console.ReadLine().Trim());
        //    while (t-- != 0)
        //    {
        //        Console.ReadLine();
        //        int n = Convert.ToInt32(Console.ReadLine().Trim());
        //        var pre = Array.ConvertAll(Console.ReadLine().Trim().Split(' '),
        //                                   tmp => Convert.ToInt32(tmp));
        //        var ino = Array.ConvertAll(Console.ReadLine().Trim().Split(' '),
        //                                   tmp => Convert.ToInt32(tmp));
        //        var treeOps = new TreeOps();
        //        TreeOps.curInd = 0;
        //        var root = treeOps.Build(pre, ino, 0, n - 1);

        //        var queries = Array.ConvertAll(Console.ReadLine().Trim().Split(' '),
        //                                   tmp => Convert.ToInt32(tmp));
        //        foreach (var q in queries)
        //        {
        //            DistanceFromNode(root, q);
        //            Console.WriteLine();
        //        }
        //        Console.WriteLine();

        //    }
        //}


        private static void DistanceFromNode(bnode node, int dis)
        {
            if (node == null || dis < 0)
            {
                return;
            }

            if (dis == 0)
            {
                Console.Write(node.data + " ");
                return;
            }

            // Recur for left and right subtrees
            DistanceFromNode(node.left, dis - 1);
            DistanceFromNode(node.right, dis - 1);

            //if (dis < 0)
            //{
            //    return;
            //}
            //if (dis == 0)
            //{
            //    if (node.left == null && node.right == null)
            //        Console.Write(node.data + " ");
            //    return;
            //}

            //if (node.left != null)
            //    DistanceFromNode(node.left, dis - 1);

            //if (node.right != null)
            //    DistanceFromNode(node.right, dis - 1);

            //return;
        }