// #include // Temp fix for gcc13 global pragma // #pragma GCC target("avx2,bmi2,popcnt,lzcnt") // #pragma GCC optimize("O3,unroll-loops") #include // #include using namespace std; #if __cplusplus >= 202002L using namespace numbers; #endif #ifdef LOCAL #include "Debug.h" #else #define debug_endl() 42 #define debug(...) 42 #define debug2(...) 42 #define debugbin(...) 42 #endif int main(){ cin.tie(0)->sync_with_stdio(0); cin.exceptions(ios::badbit | ios::failbit); int a, b; cin >> a >> b; int len = a * a + b * b; int g = gcd(a, b); #ifdef LOCAL vector filled(len, vector(len)); #else #endif for(auto xrem = 0; xrem < g; ++ xrem){ for(auto yrem = 0; yrem < g; ++ yrem){ for(auto x = len / g * xrem, y = len / g * yrem, iter = 0; iter < len / g / g; ++ iter){ cout << x << " " << y << "\n"; x = (x + a) % len; y = (y + b) % len; } } } for(auto xrem = 0; xrem < g; ++ xrem){ for(auto yrem = 0; yrem < g; ++ yrem){ for(auto x = len / g * xrem + a, y = len / g * yrem, iter = 0; iter < len / g / g; ++ iter){ cout << x << " " << y << "\n"; x = (x + a) % len; y = (y + b) % len; } } } cout.flush(); return 0; } /* */