Language: C++

#include <bits/stdc++.h>
#define INF 0x3f3f3f
#define PI 3.1415926535897932384626433832795
#define MOD 1000000007
#define PB push_back
#define F first
#define S second
#define FOR(i,k) for(int i=0; i<k; i++)
#define RFOR(i,k) for(int i=k; i>=0; i--)
#define CIN(a) int a; cin>>a;
#define CIN2(a,b) int a,b; cin>>a>>b;
#define CIN3(a,b,c) int a,b,c; cin>>a>>b>>c;
#define CIN4(a,b,c,d) int a,b,c,d; cin>>a>>b>>c>>d;
#define CINV(n,a) VI a; FOR(i,n) {int x; cin>>x; a.PB(x);}
#define CINV2(n,a,b) VI a,b; FOR(i,n) {int x,y; cin>>x>>y; a.PB(x); b.PB(y);}
#define ALL(x) x.begin(), x.end()
#define INS(x) inserter(x, x.begin())
#define D(x) cout<<#x<<": "<<(x)<<endl
#define DV(x) cout<<#x<<": "; for(auto &d:x) cout<<d<<" "; cout<<endl
#define DM(x) for(auto &p:x) cout<<p.F<<":"<<p.S<<" "; cout<<endl
#define OUT(x) cout<<(x)<<endl
#define OUTV(x) for(auto &d:x) cout<<d<<" "; cout<<endl
#define OUTG(x) for(auto &v:x) { for(auto &u:v) cout<<u; cout<<endl; }

using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<PII> VPII;
typedef vector<VI> GI;
typedef vector<vector<char> > GC;
typedef map<char,int> MC;
typedef map<int,int> MI;
typedef map<string,int> MS;

void amin(auto &x, auto y) { if(y < x) x = y; }
void amax(auto &x, auto y) { if(x < y) x = y; }
auto mod(auto x, auto m) { return ((x % m) + m) % m; }
int sz(const auto &x) { return (int)x.size(); }
int Safe(const VI &x, int i) { return i<0 || i>=x.size() ? 0 : x[i]; }
bool Find(const auto &x, auto y) { return x.find(y) != x.end(); }
bool IsSameSign(auto a, auto b) { return ((a>=0) ^ (b<0)); }
bool IsPrime(int n) { if (n <= 1)  return false; if (n <= 3)  return true; if (n%2 == 0 || n%3 == 0) return f
alse; for (int i=5; i*i<=n; i=i+6) if (n%i == 0 || n%(i+2) == 0) return false; return true; }
PII operator+(const PII &l, const PII &r) { return {l.F+r.F, l.S+r.S}; }
bool IsInBounds(const PII p, int Y, int X) { return p.F >=0 && p.F < Y && p.S >=0 && p.S < X; }
VPII nb = {{0,1}, {1,0}, {0,-1}, {-1,0}};

int main() {
  CIN2(a,b);
  
  GC g(100, vector<char>(100));
  FOR(y, sz(g)) {
    FOR(x, sz(g[0])) {
      g[y][x] = y < 50 ? '.' : '#';
    }
  }

  int wy=0, wx=0;
  int by=51, bx=0;
  FOR(i, b-1) {
    g[wy][wx] = '#';
    wx += 2;
    if(wx >= sz(g[0])) {
      wx=0;
      wy+=2;
    }
  }

  FOR(i, a-1) {
    g[by][bx] = '.';
    bx += 2;
    if(bx >= sz(g[0])) {
      bx=0;
      by+=2;
    }
  }
  cout<<"100 100"<<endl;
  OUTG(g);
}


Compiler output:
a.cc:37:11: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   37 | void amin(auto &x, auto y) { if(y < x) x = y; }
      |           ^~~~
a.cc:37:20: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   37 | void amin(auto &x, auto y) { if(y < x) x = y; }
      |                    ^~~~
a.cc:38:11: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   38 | void amax(auto &x, auto y) { if(x < y) x = y; }
      |           ^~~~
a.cc:38:20: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   38 | void amax(auto &x, auto y) { if(x < y) x = y; }
      |                    ^~~~
a.cc:39:10: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   39 | auto mod(auto x, auto m) { return ((x % m) + m) % m; }
      |          ^~~~
a.cc:39:18: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   39 | auto mod(auto x, auto m) { return ((x % m) + m) % m; }
      |                  ^~~~
a.cc:40:14: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   40 | int sz(const auto &x) { return (int)x.size(); }
      |              ^~~~
a.cc:42:17: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   42 | bool Find(const auto &x, auto y) { return x.find(y) != x.end(); }
      |                 ^~~~
a.cc:42:26: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   42 | bool Find(const auto &x, auto y) { return x.find(y) != x.end(); }
      |                          ^~~~
a.cc:43:17: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   43 | bool IsSameSign(auto a, auto b) { return ((a>=0) ^ (b<0)); }
      |                 ^~~~
a.cc:43:25: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
   43 | bool IsSameSign(auto a, auto b) { return ((a>=0) ^ (b<0)); }
      |                         ^~~~
a.cc: In function 'bool IsPrime(int)':
a.cc:44:109: error: 'f' was not declared in this scope
   44 | bool IsPrime(int n) { if (n <= 1)  return false; if (n <= 3)  return true; if (n%2 == 0 || n%3 == 0) return f
      |                                                                                                             ^
a.cc:44:110: error: expected ';' before 'alse'
   44 | bool IsPrime(int n) { if (n <= 1)  return false; if (n <= 3)  return true; if (n%2 == 0 || n%3 == 0) return f
      |                                                                                                              ^
      |                                                                                                              ;
   45 | alse; for (int i=5; i*i<=n; i=i+6) if (n%i == 0 || n%(i+2) == 0) return false; return true; }
      | ~~~~                                                                                                          
a.cc:45:1: error: 'alse' was not declared in this scope
   45 | alse; for (int i=5; i*i<=n; i=i+6) if (n%i == 0 || n%(i+2) == 0) return false; return true; }
      | ^~~~