2つの数 \(a_ma_{m-1} \cdots a_2a_1\) と \(b_nb_{n-1} \cdots b_2b_1\) を足すことを考える. ただし, \(a_i, b_i\) はそれぞれ6か7である. \(m \geq n\) としても一般性を失わない.

\(m = n\) の場合は, 和は \(1c_mc_{m-1} \cdots c_2c_1\) となる. ただし, \(c_1\) は2,3,4のいずれかであり, \(c_i\ (i \gt 1)\) は3,4,5のいずれかである.

\(m = n+1\) の場合は, 和は \(c_mc_{m-1} \cdots c_2c_1\) となる. ただし, \(c_1\) は2,3,4のいずれかであり, \(c_i\ (1 \lt i \lt m)\) は3,4,5のいずれかであり, \(c_m\) は7,8のいずれかである.

\(m \gt n+1\) の場合は, 和は \(c_mc_{m-1} \cdots c_{n+1}c_nc_{n-1} \cdots c_2c_1\) となる. ただし, \(c_1\) は2,3,4のいずれかであり, \(c_i\ (1 \lt i \leq n)\) は3,4,5のいずれかであり, \(c_{n+1}\) は7,8のいずれかであり, \(c_i\ (n+1 \lt i \leq m)\) は6,7のいずれかである.

このうちどれかを満たすかどうかを調べる. \(p\) は文字列で読み込んで正規表現を使うのが手っ取り早い.