#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; using namespace boost::multiprecision; using ll = long long; using ld = long double; using P = pair; using mint = modint998244353; #define int long long #define rep(i, s, n) for (ll i = (s); i < (ll)(n); i++) #define all(a) (a).begin(), (a).end() #define rall(a) (a).rbegin(), (a).rend() const ll INF = 1e18; const int dx[8] = {0, 1, 0, -1, -1, -1, 1, 1}; const int dy[8] = {1, 0, -1, 0, -1, 1, -1, 1}; template inline bool chmax(T &a, T b) { return ((a < b) ? (a = b, true) : (false)); } template inline bool chmin(T &a, T b) { return ((a > b) ? (a = b, true) : (false)); } void yn(bool t) { cout << (t ? "Yes" : "No") << endl; } uint64_t seed = chrono::duration_cast(chrono::high_resolution_clock::now().time_since_epoch()).count(); mt19937_64 rng(seed); int randint(int l, int r) { return uniform_int_distribution(l, r)(rng); } int solve() { int a,b;cin>>a>>b; rep(i,1,1e5){ if(i%a==b%i){ cout<