internal void ExecuteQueries()
        {
            foreach (var query in Queries)
            {
                var operation = query.Operation;

                var adder   = query.Low;
                var operand = (query.Low + RunningSum) % M;

                var high      = query.High;
                var highRange = (high + RunningSum) % M;
                if (operation != Operations.Sum)
                {
                    highRange = 0;
                }

                switch (operation)
                {
                case Operations.Add:
                    if (!TreeNodes.Any() || Root == null)
                    {
                        TreeNodes.Add(new TreeNode(operand));
                        Root = TreeNodes[0];
                        UpdateSum(Root);
                        break;
                    }
                    SplayInsert(operand, Root);
                    break;

                case Operations.Find:
                    if (!TreeNodes.Any())
                    {
                        QueryResults.Add(Results.NotFound);
                        break;
                    }
                    var foundNode = SplayFind(operand, Root);
                    if (foundNode == null || foundNode.Value != operand)
                    {
                        QueryResults.Add(Results.NotFound);
                        break;
                    }
                    QueryResults.Add(Results.Found);
                    break;

                case Operations.Del:
                    if (!TreeNodes.Any())
                    {
                        break;
                    }
                    SplayDel(operand);
                    break;

                case Operations.Sum:
                    if (!TreeNodes.Any())
                    {
                        QueryResults.Add("0");
                        break;
                    }
                    var rangeSum = SumRange(operand, highRange);
                    QueryResults.Add(rangeSum.ToString());
                    RunningSum = rangeSum;
                    break;
                }
            }
        }