#include <bits/stdc++.h>
using namespace std;
const int mxn = 100000;
long long n, k;
int a[2][mxn], first[mxn];
vector<pair<int, int> > v;
void sol() {
  cout << k << '\n';
  for (pair<int, int> i : v) cout << (i.first + 1) << " " << i.second << '\n';
  exit(0);
}
void add(int x, int y) {
  if (a[0][x + 1] + y < 0 || a[0][x + 1] + y > 9) add(x + 1, -y);
  if (v.size() == mxn) sol();
  a[0][x] += y, a[0][x + 1] += y;
  v.push_back({x, y});
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < n; j++) {
      char c;
      cin >> c;
      a[i][j] = c - '0';
    }
  memcpy(first, a[0], sizeof(first));
  for (int i = 0; i < n - 1; i++) {
    int x = a[1][i] - first[i];
    k += abs(x), first[i] += x, first[i + 1] += x;
  }
  if (a[1][n - 1] != first[n - 1]) k = -1, sol();
  for (int i = 0; i < n - 1; i++)
    while (a[0][i] != a[1][i]) {
      add(i, 2 * (a[0][i] < a[1][i]) - 1);
    }
  sol();
  return 0;
}
