小橙的圈圈
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小橙拥有了一张随机生成的竞赛图,他喜欢图上的三元环,即由三个点组成环,请你帮她求出图上有多少个三元环。

竞赛图是一个有向图,任意不同的两点间都恰好有一条单向边。也就是一共有 n \times (n - 1) / 2 条有向边。
竞赛图由以下伪代码生成:
def rnd():
    ret = seed
    seed = (seed * 7 + 13) mod 1000000007
    return ret mod 2

for i = 1 to n - 1:
    for j = i + 1 to n:
        if rnd() == 0:
            add_edge(i, j) # 从i到j添加一条有向边
        else:
            add_edge(j, i) # 从j到i添加一条有向边


输入描述:

第一行输入两个正整数n,seed,分别表示点的个数,随机数种子。
1 \leq n \leq 5 \times 10^3
1 \leq seed < 10^9 + 7

输出描述:

输出一个整数,为图上三元环的个数。
示例1

输入

复制
3 2

输出

复制
1

说明

竞赛图边的情况如下: