　$n$ 回操作した後の文字列に含まれる連続部分文字列 $AB, BA$ の個数の和を $a_n$，文字 $C$ の個数を $b_n$，そのうち両端にある $C$ の個数を $c_n$ とする．このとき，任意の非負整数 $n$ について以下が成り立つことが分かる.
   $$ a_{n+1} = 2b_n - c_n ,\ b_{n+1} = a_n + b_n$$

　ここで，両端に含まれる $C$ の個数は常に一定のため，$c_n$ = $c_0$ となる．これを $x$ とおくことにすると，$ a_{n+1} = 2b_n - x,\ b_{n+1} = a_n + b_n $ となる．この漸化式に対する $x$ の寄与は独立して考えることができるので，まず，$ a_{n+1} = 2b_n ,\ b_{n+1} = a_n + b_n $ を解くことを考える．これを変形すると，$$a_{n+1} + 2b_{n+1} = 2(a_n + 2b_n) ,\ a_{n+1} - b_{n+1} = -(a_n - b_n)$$

となるため，$$a_{2023} + 2b_{2023} = 2^{2023} × (a_0 + 2b_0) , \ a_{2023} - b_{2023} = -(a_0 - b_0)$$

が得られる．よって，$a_{2023} = \cfrac{(2^{2023} - 2)a_0 + (2^{2024} + 2)b_0}{3} , \ b_{2023} = \cfrac{(2^{2023} + 1)a_0 + (2^{2024} - 1)b_0}{3}$ となることが分かる．また，$b_n$ に対する $x$ の寄与を $n$ が小さい方から順に求めると，$ 0,0,-x,-2x,-5x,-10x,-21x，\cdots$ となることも分かる．これより，$b_n$ に対する $x$ の寄与は 
$$ \begin{cases}
\cfrac{-(2^n - 1)x}{3} \ ( \ n \mathrm{ \ が偶数の時} ) 
\\\ \cfrac{-(2^n - 2)x}{3} \ ( \ n \mathrm{ \ が奇数の時} ) 
\end{cases}
$$
となることが予測できる．これは正しく，このことは $n$ に関する数学的帰納法などを用いることで容易に確かめられる．これより，$b_{2023} = \cfrac{(2^{2023} + 1)a_0 + (2^{2024} - 1)b_0 - (2^{2023}- 2)x}{3}$ となることが分かる．ここで，元の文字列において，長さ $2$ の連続部分文字列が $AB$ でも $BA$ でもないことと，その文字列が $C$ を含むことは同値であり，かつ，両端にない $C$ に対しては $2$ つずつ，両端にある $C$ に対しては $1$ つずつそのような文字列が生じるため，$$ a_{0} + 2b_{0} - x = 2022$$ 

が成立することも分かる．これを用いて $b_{2023}$ を整理すると，$$ b_{2023} = a_0 + b_0 + 674 × (2^{2023}-2) $$ 

となる．よって，$ a_0 + b_0 $ の最大，最小について考えればよい．まず，$ a_0 + b_0 = 2022 + x - b_0 $ であり，かつ明らかに $x \leq b_0$ であるため，$ a_0 + b_0 \leq 2022 $ となる．また，両端以外に $C$ が存在しないときに等号が実現されるため，$ M = 2022 + 674 × (2^{2023}-2) $ と分かる．そして，両端以外に $C$ が存在しない文字列は，$2$ 文字目以降が $ABABA \cdots \ $  または  $ \ BABAB \cdots$ となる文字列であり，両端の文字は任意であることから，$ m = 2 × 2 × 2 = 8 $ も分かる．$ a_0 + b_0 $ が最小になるのは $ x - b_0 $ が最小になるとき，つまり，両端以外の $C$ の個数が最大になるときであり，これは，偶数文字目が全て $C$ となるときに実現され，$ a_0 + b_0 = 1011 $ となることが分かる．よって，$ N = 1011 + 674 × (2^{2023}-2) $ ，$ n = 2^{1012} $ と分かる.
$\\\ $ 　これより，$ M+m+N+n = 3041 + 1348 × (2^{2023}-2) + 2^{1012} $ と分かる．これは，$\bmod\ 503$ において，$ 23 + 342 × (2^{15} - 2) + 2^8 \equiv 23 + 256 - 684 + 342 × 18 × 32 \equiv 98 + 20 × 192 \equiv 417$ となる．よって，解答すべき値は $ \mathbf{417}$ となる．
公式解説
https://onlinemathcontest.com/contests/omc230/editorial/7789
　公式解説の $a_n,b_n,c_n$ の置き方は，$C$ の個数を求めるために必要なものをしっかりと捉えた置き方になっています．\
　一方，本別解では，対称性を意識した $p_n,q_n,r_n$ を用いて，$C$ の個数を求めようとしています．

---

　$n$ 回操作した後の文字列に対して，$A$ と $B$ が隣り合うところが $p_n$ 個，$B$ と $C$ が隣り合うところが $q_n$ 個，$C$ と $A$ が隣り合うところが $r_n$ 個とおく．任意の非負整数 $n$ に対して以下が成り立つ．
$$\begin{aligned}
p_n+q_n+r_n&=2022 \cdot 2^n \\\\
p_{n+1}&= q_n+r_n\\\\
q_{n+1}&= r_n+p_n\\\\
r_{n+1}&= p_n+q_n
\end{aligned}$$
　この連立漸化式を解くと，以下のことがわかる：
$$\begin{aligned}
p_{2023}=k-p_0 \\\\
q_{2023}=k-q_0\\\\
r_{2023}=k-r_0
\end{aligned}$$
　ただし $k=\dfrac{2^{2023}+1}{3}\cdot 2022$ である．\
　従って，文字列の両端に注意すると，$n$ 回操作した後の文字 $C$ の数は次のように表せる：
$$\dfrac{q_{2023}+r_{2023}}{2}+\begin{cases}
0 & (C が両端にない) \\\\
\dfrac{1}{2} & (C が端に一つある)\\\\
1 & (C が両端にある)
\end{cases} \quad$$
　よって $q_0+r_0$ が最大かつ $C$ が両端にないときに，最小値 $N=k-1011$，$n=2^{1012}$ を得る．\
　一方，最大値については $3$ つのケースが存在し， 
- $q_0+r_0=0$ かつ（当然だが）$C$ が両端にない場合
- $q_0+r_0=1$ かつ $C$ が端にある場合
- $q_0+r_0=2$ かつ $C$ が両端ともにある場合

　よって最大値は $M=k$，$n=8$ である．
別解
https://onlinemathcontest.com/contests/omc230/editorial/7789/636
　$3$ 種類の文字に対する $2$ 通りの巡回（$ABCABCA ...$ か $ACBACBA ...$）に注目し，操作を繰り返した後の文字列がどのような形になるのかを調べる解法です．

---

　$A, B, C$ からなり，なおかつ同じ文字が隣接しないような文字列のことをここでは**良い文字列**と呼ぶことにする．長さ $L$ の良い文字列 $S$ に対し，次のルールにしたがって作られる長さ $L - 1$ の $X, Y$ からなる文字列を $f(S)$ と表そう．
- 各 $k = 1, ..., L - 1$ に対し，$k, k + 1$ 文字目の連続 $2$ 文字が $AB, BC, CA$ のいずれかであれば $k$ 文字目を $X$ とし，$AC, CB, BA$ のいずれかであれば $k$ 文字目を $Y$ とする．

つまり $ABCABCA ...$ という巡回が起きるときに $X$，$ACBACBA ...$ という巡回が起きるときに $Y$ が設定されるようなイメージである．たとえば，
$$f(ABACA) = XYYX，f(ABCACAB) = XXXYXX$$
などが成り立つ．ここで次の事実を得る．
- **事実 1.**　$S$ を良い文字列とし，$S$ に対し問題の操作を $1$ 回施して得られる良い文字列を $S^{\prime}$ とする．このとき $f(S)$ に対し
$$X \rightarrow YY，Y \rightarrow XX$$
の置き換えをすべて同時に施すと，$f(S^{\prime})$ が得られる（それぞれの巡回が逆向きとなり倍増するイメージ）．

　それでは長さ $2023$ の良い文字列 $S_0$ に対し，操作を $2023$ 回繰り返して得られる文字列を $S_1$ としよう．また，$g(k) = 2^{2023} (k - 1) + 1$ とする．このとき $S_0$ の選び方によらず以下 $2$ つが成り立つ（事実 3. は事実 1. からしたがう）．
- **事実 2.**　各 $k = 1, ..., 2023$ に対し，$S_0$ の $k$ 文字目と $S_1$ の $g(k)$ 文字目は等しい．
- **事実 3.**　任意の $k = 1, ..., 2022$ について，$f(S_1)$ の $g(k)$ 文字目から $g(k + 1) - 1$ 文字目までの $2^{2023}$ 文字は，すべて $X$ であるか，すべて $Y$ である．

ここで $2^{2023} \equiv 2 \pmod{3}$ に注意し，$\alpha = \dfrac{2^{2023} + 1}{3}$ とおこう．各 $k = 1, ..., 2022$ に対し，$S_1$ の $g(k)$ 文字目から $g(k + 1)$ 文字目までの $2^{2023} + 1\ (= 3 \alpha)$ 文字は，$ABCABC ... ABC$ などのように同じ $3$ 文字を $\alpha$ 回繰り返していることが事実 3. からわかり，特に $C$ はこの範囲にちょうど $\alpha$ 個含まれる．このことをすべての $k$ について適用しよう．すると，$S_1$ の $g(2), g(3), ..., g(2022)$ 文字目の中に含まれる $C$ の個数を $x$，$S_1$ 全体に含まれる $C$ の個数を $y$ と表したとき，
$$x + y = 2022 \alpha$$
が成り立つ．また，事実 2. より $x$ は $S_0$ における $2$ 文字目から $2022$ 文字目までに含まれる $C$ の個数に等しい．$S_0$ が良い文字列であることから $x$ のとり得る範囲は $0 \leq x \leq 1011$ なので，結局 $y$ の最大値 $M$ と最小値 $N$ はそれぞれ以下のように表せる．
$$M = 2022 \alpha，N = 2022 \alpha - 1011$$
$x = 0$ なる $S_0$ は $2$ 文字目から $2022$ 文字目までが $ABABA ... ABA$ か $BABAB ... BAB$ のどちらかであり，それぞれに対し $1$ 文字目と $2023$ 文字目を決める方法は $2$ 通りずつある．よって，$m = 2^3 = 8$ を得る．$x = 1011$ なる $S_0$ の場合は偶数文字目をすべて $C$ にする他なく，残りの $1012$ 個の文字をそれぞれ独立に $A, B$ のどちらかに定めればよい．よって，$n = 2^{1012}$ を得る．あとは公式解説同様 $M + m + N + n$ を $503$ で割った余りを求めればよい．
文字の巡回に注目する
https://onlinemathcontest.com/contests/omc230/editorial/7789/642
　各文字が $A,B,C$ のいずれかである長さ $2023$ の文字列があり，この文字列はどの隣り合う $2$ 文字も異なっています．この文字列に以下の操作を $2023$ 回行うことを考えます：
- 全ての隣り合う $2$ 文字の間について，どちらの文字とも異なる $A,B,C$ のいずれかの文字を入れる．

　例えば，文字列 $ABC$ に対してこの操作を $1$ 回行うと文字列は $ACBAC$ となります．はじめの文字列を自由に選べるとしたとき，
- 操作後の文字列に含まれる $C$ の個数の最大値を $M$，
- $C$ の個数の最大値を実現するはじめの文字列としてありうるものの個数を $m$，
- 操作後の文字列に含まれる $C$ の個数の最小値を $N$，
- $C$ の個数の最小値を実現するはじめの文字列としてありうるものの個数を $n$

とします．$M+m+N+n$ を素数 $503$ で割った余りを解答して下さい．