406204: GYM102309 F Fullerene of Orz Pandas
Description
An Orz Panda is researching fullerene. A fullerene is an allotrope of carbon whose molecule consists of carbon atoms connected by single and double bonds so as to form a closed or partially closed mesh, with fused rings of five to seven atoms.
The Orz Panda only cares about buckyball, the fullerene molecule with $$$60$$$ carbon atoms. Buckyball is a highly symmetric molecule looking like a association football ("soccer"), having $$$12$$$ pentagons and $$$20$$$ hexagons. You can view (and rotate) its geometry structure at http://acm.xidian.edu.cn/orz-panda/2019/supplementary/c60-3d/.
The Orz Panda has $$$n$$$ different types of atoms which can be attached on a carbon atom in the buckyball. On each carbon atom it's only allowed to attach at most one atom. Now wym6912 wants to know how many different molecules can be derived by attach some atoms on a buckyball, mathematically (so you don't need to figure out if a derivative is stable enough to exist). Two derivative are considered same if and only if it's possible to rotate one in the three-dimensional space so that it coincides with another.
Note that some derivatives may be chiral and mirroring is not a rotation in the three-dimensional space.
The Orz Panda can't answer wym6912's question. Please help him. Since the answer may be very large, you should output the answer modulo $$$1000000007$$$.
InputThere are multiple test cases. Please process until EOF.
Each test case contains only one integer $$$n$$$. It's guaranteed that $$$n$$$ is not negative, and can be represented by a signed 32-bit integer.
OutputFor each test case, output the number of different derivatives modulo $$$1000000007$$$.
ExampleInput0 10Output
1 130650357