#include<bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define FAST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
signed main(){
FAST
int n;
cin>>n;
vector<vector<int>>vec(4);
for(int i=0;i<n;i++){
int x;
cin>>x;
vec[x].push_back(i);
}
int mx=min({vec[1].size(),vec[2].size(),vec[3].size()});
cout<<mx<<'\n';
for(int i=0;i<mx;i++){
cout<<vec[1][i]+1<<' '<<vec[2][i]+1<<' '<<vec[3][i]+1<<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiNkZWZpbmUgb3JkZXJlZF9zZXQgdHJlZTxpbnQsIG51bGxfdHlwZSxsZXNzPGludD4sIHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4KI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKCgpzaWduZWQgIG1haW4oKXsKICAgIEZBU1QKICAgIGludCBuOwogICAgY2luPj5uOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PnZlYyg0KTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGludCB4OwogICAgICAgIGNpbj4+eDsKICAgICAgICB2ZWNbeF0ucHVzaF9iYWNrKGkpOwogICAgfQogICAgaW50IG14PW1pbih7dmVjWzFdLnNpemUoKSx2ZWNbMl0uc2l6ZSgpLHZlY1szXS5zaXplKCl9KTsKICAgIGNvdXQ8PG14PDwnXG4nOwoKICAgIGZvcihpbnQgaT0wO2k8bXg7aSsrKXsKICAgICAgICBjb3V0PDx2ZWNbMV1baV0rMTw8JyAnPDx2ZWNbMl1baV0rMTw8JyAnPDx2ZWNbM11baV0rMTw8J1xuJzsKICAgIH0KCgoKCiAgICByZXR1cm4gMDsKfQoK