　$M$ の要素を頂点に持つグラフであって，任意の $M$ の要素 $x$ に対して $x$ から $f(x)$ に向けて有効辺が張られているものを考える．

----
**補題.**　$f$ が条件を満たすことは，各頂点が頂点数 $3$ の閉路に含まれることと同値である．\
**証明.**　まず必要性を示す．$f$ が条件を満たすとき，$f$ は全射であり $M$ は有限集合であるから，各頂点は閉路に含まれる．次に，$f(f(f(x))) = x$ より各閉路の頂点数は $3$ の約数であるが，任意の $M$ の要素 $x$ に対して $f(x) \neq x$ であるからどの閉路の頂点数も $1$ ではないので，全ての閉路の頂点数は $3$ である．よって示された．\
　次に十分性を示す．任意の $M$ の要素 $x$ は大きさ $3$ の閉路に含まれるので，$f(x) \neq x$ であり，さらに $f(f(f(x))) = x$ である．よって示された．
----

　補題より，$N$ は $M$ を $3$ つの要素からなる組 $33$ 個に分け各々について $2$ 通りの向きを付ける方法の数に等しい．このような方法は $\dfrac{99!\ 2^{33}}{33!\ (3!)^{33}}$ 通りあり，これが $2$ で割り切れる最大の回数はLegendreの定理より $\bf64$ 回である．
公式解説
https://onlinemathcontest.com/contests/omc220/editorial/7581
　$M = \\{1,2,\ldots,99\\}$ とします．$f:M\to M$ であって，任意の $M$ の要素 $x$ に対して
$$f(x) \neq x,\quad f\big(f(f(x))\big) = x$$
を満たすものの数を $N$ とします．$N$ が $2$ で割り切れる最大の回数を求めて下さい．