#include <bits/stdc++.h>
using namespace std;
pair<string, string> s[100010ll];
vector<pair<string, string>> d;
int32_t main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  cout << fixed;
  cout << setprecision(10);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    string temp;
    cin >> temp;
    string p1 = "";
    string p2 = "";
    int t = 0;
    for (int j = 0; j < temp.size(); j++) {
      if (temp[j] == '/') t++;
      if (t <= 2)
        p1.push_back(temp[j]);
      else
        p2.push_back(temp[j]);
    }
    s[i].first = p1;
    s[i].second = p2;
  }
  sort(s, s + n);
  string pev = "0";
  for (int i = 0; i < n; i++) {
    if (i > 0) {
      if (s[i].first + s[i].second == s[i - 1].first + s[i - 1].second)
        continue;
    }
    string p1 = s[i].first;
    string p2 = "Z" + s[i].second + "Z";
    if (pev == p1)
      d[d.size() - 1].first += p2;
    else
      d.push_back({p2, p1});
    pev = p1;
  }
  sort(d.begin(), d.end());
  cout << endl;
  for (int i = 0; i < d.size(); i++)
    cerr << d[i].first << ":" << d[i].second << endl;
  cout << endl;
  string ans = d[0].second + " ";
  int t = 1;
  vector<string> out;
  for (int i = 1; i < d.size(); i++) {
    if (d[i].first == d[i - 1].first) {
      ans += d[i].second + " ";
      t++;
    } else {
      if (t > 1) out.push_back(ans);
      ans = d[i].second + " ";
      t = 1;
    }
  }
  if (t > 1) out.push_back(ans);
  cout << out.size() << endl;
  for (auto s : out) cout << s << endl;
}
