public void Native()
        {
            LongSums sums;
            var      seg = new SegtreeBeats <S, long, Op>(new S[10].Fill(new S(0)));

            seg.Apply(0, 8, 1);
            sums = new LongSums(new long[] { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 });
            for (int l = 0; l < 10; l++)
            {
                for (int r = l; r <= 10; r++)
                {
                    seg[l..r].sum.Should().Be(sums[l..r]);
        public override void Solve(ConsoleReader cr, ConsoleWriter cw)
        {
            int N = cr;
            int Q = cr;

            long[] a   = cr.Repeat(N);
            var    seg = new SegtreeBeats <S, F, Op>(a.Select(n => new S(n)).ToArray());

            for (int q = 0; q < Q; q++)
            {
                int t = cr;
                int l = cr;
                int r = cr;
                if (t == 3)
                {
                    cw.WriteLine(seg[l..r].sum);