#include <bits/stdc++.h>
const int N = 300000;
using namespace std;
int n;
string st;
string pref;
int hashes;
vector<string> calls[N];
vector<int> ans;
string get_pref(string st) {
  string temp = "";
  int cnt = 0;
  for (int i = 0; i < st.size(); i++) {
    if (st[i] == '/') {
      ++cnt;
      if (cnt == 3) break;
    }
    temp += st[i];
  }
  return temp;
}
set<string> names_set;
map<string, int> names_map;
int servers;
string server_name[N];
int names;
void add_server(string st) {
  ++names;
  names_set.insert(st);
  names_map[st] = names;
  server_name[names] = st;
}
int get_id(string st) {
  if (names_set.find(st) == names_set.end()) add_server(st);
  return names_map[st];
}
set<long long> hash_set;
map<long long, int> hash_map;
vector<long long> hash_vec[N];
void add_new_hash(long long val) {
  hash_set.insert(val);
  hash_map[val] = hash_set.size();
  ++hashes;
}
void add_hash(long long val, int id) {
  if (hash_set.find(val) == hash_set.end()) add_new_hash(val);
  int num = hash_map[val];
  hash_vec[num].push_back(id);
}
long long get_hash(string st) {
  long long val = 0;
  for (int i = 0; i < st.size(); i++) {
    val = val * 173 + st[i];
    val %= 1000000007;
  }
  for (int i = 0; i < st.size(); i++) {
    val = val * 137 + st[i];
  }
  return val;
}
long long get_hash(vector<string> v) {
  long long res = 0;
  for (int i = 0; i < v.size(); i++) {
    if (i > 0 && v[i] == v[i - 1]) continue;
    res = (res * 137 + get_hash(v[i])) * 129 + 17;
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> st;
    pref = get_pref(st);
    string temp = "";
    for (int j = pref.size(); j < st.size(); j++) {
      temp += st[j];
    }
    int id = get_id(pref);
    calls[id].push_back(temp);
  }
  for (int i = 1; i <= names; i++) {
    sort(calls[i].begin(), calls[i].end());
  }
  for (int i = 1; i <= names; i++) {
    long long P = get_hash(calls[i]);
    add_hash(P, i);
  }
  for (int i = 1; i <= hashes; i++) {
    if (hash_vec[i].size() == 1) continue;
    ans.push_back(i);
  }
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); i++) {
    int id = ans[i];
    for (int j = 0; j < hash_vec[id].size(); j++) {
      if (j) cout << " ";
      int id2 = hash_vec[id][j];
      cout << server_name[id2];
    }
    cout << endl;
  }
  cin.get();
  cin.get();
  return 0;
}
