#include <iostream>
#include <cstdlib>
#include <iomanip>

using namespace std;

int add(int a, int b) {
  char *c = (char*)a;

  return atoi(&c[b]);
}

int add2(int a, int b) {
  if(b==0)
    return a;

  int sum = a^b;
  int carry = (a&b)<<1;

  return add2(sum, carry);

}


int main(int argc, char **argv) {

  for(int i=0; i<10; i++) {
    for(int j=0; j<10; j++) {
      //      cout << "i: " << i << "; j: " << j << "; sum: " << add2(i, j) << endl;
      cout <<  setfill('-') << setw(2);
      cout << add2(i,j) << " ";
    }
    cout << endl;
  }

  return 0;
}
