#include <bits/stdc++.h>
using namespace std;
long long int c[1010][1010];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  string s1, s2;
  cin >> s1 >> s2;
  map<char, set<int> > mp;
  for (int i = 0; i < n; i++) {
    mp[s1[i]].insert(i + 1);
  }
  int k = 0;
  vector<int> v1, v2;
  for (int i = 0; i < n; i++) {
    if (s2[i] != '?') {
      if (!mp[s2[i]].empty()) {
        int k1 = *mp[s2[i]].begin();
        v1.push_back(k1);
        v2.push_back(i + 1);
        mp[s2[i]].erase(k1);
        k++;
      } else {
        if (!mp['?'].empty()) {
          int k1 = *mp['?'].begin();
          v1.push_back(k1);
          v2.push_back(i + 1);
          mp['?'].erase(k1);
          k++;
        }
      }
    }
  }
  for (int i = 0; i < n; i++) {
    if (s2[i] == '?') {
      for (auto it = mp.begin(); it != mp.end(); it++) {
        if (!it->second.empty()) {
          int k1 = *it->second.begin();
          k++;
          v1.push_back(k1);
          v2.push_back(i + 1);
          it->second.erase(k1);
          break;
        }
      }
    }
  }
  cout << k << endl;
  for (int i = 0; i < k; i++) {
    cout << v1[i] << " " << v2[i] << endl;
  }
  cerr << "Time elapsed : " << clock() * 1000.0 / CLOCKS_PER_SEC << "ms"
       << '\n';
  return 0;
}
