#include <bits/stdc++.h>
using namespace std;
const int MAX = 100 * 1000 + 50;
int number[MAX];
int number_place[MAX];
set<pair<int, int> > number_main;
int pointer;
vector<pair<int, int> > ans;
int n;
int check_good_number(int x) {
  while (x > 0) {
    int mark = 0;
    int t = x % 10;
    x = x / 10;
    if (t == 4 || t == 7) {
      mark = 1;
    }
    if (mark == 0) {
      return 0;
    }
  }
  return 1;
}
void input() {
  cin >> n;
  for (int i = 1; i <= n; i = i + 1) {
    int x;
    cin >> x;
    number_main.insert(make_pair(x, i));
    if (pointer == 0) {
      int p = check_good_number(x);
      if (p == 1) {
        pointer = i;
      }
    }
  }
}
void make_number() {
  int pointer_set = 1;
  while (number_main.size() > 0) {
    int x_place = number_main.begin()->second;
    int x = number_main.begin()->first;
    number_place[x_place] = pointer_set;
    number[pointer_set] = x_place;
    pointer_set++;
    number_main.erase(make_pair(x, x_place));
  }
}
void solve() {
  for (int i = 1; i <= n; i = i + 1) {
    int number_pointer = number_place[pointer];
    int number_i = number_place[i];
    swap(number_place[pointer], number_place[i]);
    swap(number[number_pointer], number[number_i]);
    ans.push_back(make_pair(pointer, i));
    pointer = i;
    int place_i = number[i];
    swap(number_place[pointer], number_place[place_i]);
    swap(number[number_pointer], number[i]);
    ans.push_back(make_pair(pointer, place_i));
    pointer = place_i;
  }
}
void output() {
  if (pointer == 0) {
    cout << (-1) << endl;
    return;
  }
  int u = 0;
  for (int i = 0; i < ans.size(); i = i + 1) {
    if (ans[i].first == ans[i].second) {
      u++;
    }
  }
  cout << ans.size() - u << endl;
  for (int i = 0; i < ans.size(); i = i + 1) {
    if (ans[i].first != ans[i].second) {
      cout << ans[i].first << " " << ans[i].second << endl;
    }
  }
}
int check() {
  for (int i = 1; i <= n; i = i + 1) {
    if (number_place[i] != i) {
      return 0;
    }
  }
  return 1;
}
int main() {
  input();
  make_number();
  if (check() == 1) {
    cout << 0 << endl;
    return 0;
  }
  solve();
  output();
  return 0;
}
