#include <bits/stdc++.h>
using namespace std;
string get_path(string& s) {
  int i;
  for (i = 7; i < s.size() && s[i] != '/'; i++)
    ;
  return s.substr(i, s.size() - i);
}
string get_host(string& s) {
  int i;
  for (i = 7; i < s.size() && s[i] != '/'; i++)
    ;
  return s.substr(0, i);
}
int main() {
  int n;
  cin >> n;
  int ind = 0;
  map<string, int> path;
  map<string, set<int> > items;
  vector<string> input(n);
  map<set<int>, vector<string> > ans;
  for (int i = 0; i < n; i++) {
    cin >> input[i];
    if (!path.count(get_path(input[i]))) path[get_path(input[i])] = ind++;
  }
  for (int i = 0; i < n; i++) {
    items[get_host(input[i])].insert(path[get_path(input[i])]);
  }
  for (map<string, set<int> >::iterator i = items.begin(); i != items.end();
       i++)
    ans[i->second].emplace_back(i->first);
  int k = 0;
  for (map<set<int>, vector<string> >::iterator i = ans.begin(); i != ans.end();
       i++)
    if (i->second.size() > 1) k++;
  cout << k << '\n';
  for (map<set<int>, vector<string> >::iterator i = ans.begin(); i != ans.end();
       i++)
    if (i->second.size() > 1) {
      for (string& j : i->second) cout << j << ' ';
      cout << '\n';
    }
  return 0;
}
