#include <bits/stdc++.h>
using namespace std;
long long int m, n, c, d, j, k, l, r, x, t, y, u, z, i, e, f, g, h, a = 1, b;
int main() {
  string s, p = "", q = "";
  vector<string> v;
  vector<long long int> w;
  cin >> s;
  n = s.size();
  for (i = 0; i < n; i++) {
    if (s[i] == '@') y++;
    if (s[i] == '@' && s[i + 1] == '@') b++;
  }
  if (y == 1) {
    if (s[0] != '@' && s[n - 1] != '@')
      q = s;
    else
      q = "No solution";
  } else {
    for (i = n - 1; i >= 0; i--) {
      if (s[i] == '@') {
        d = i - 1;
        break;
      }
    }
    for (i = 0; i < n; i++) {
      if (i == d)
        break;
      else {
        if (s[i] == '@') {
          p += s[i];
          p += s[i + 1];
          p += ",";
          q += p;
          i++;
          k = i;
          v.push_back(p);
          p = "";
        } else
          p += s[i];
      }
    }
    p = "";
    for (i = k + 1; i < n; i++) p += s[i];
    q += p;
    v.push_back(p);
    for (i = 0; i < v.size(); i++) {
      p = v[i];
      for (j = 0; j < p.size(); j++)
        if (p[j] == '@') c++;
      if (i < v.size() - 1) {
        if (p[0] != '@' && p[p.size() - 2] != '@') c++;
      } else if (i == v.size() - 1) {
        if (p[0] != '@' && p[p.size() - 1] != '@') c++;
      }
      if (c != 2) {
        cout << "No solution";
        return 0;
      }
      c = 0;
    }
  }
  if (q[0] == '@' || q[q.size() - 1] == '@' || b) q = "No solution";
  cout << q;
}
