#include <bits/stdc++.h>
using namespace std;
const int maxn = 200 + 5;
struct node {
  int l, r;
  int id;
} address[maxn];
char input[maxn];
int main() {
  while (gets(input)) {
    int len = strlen(input);
    int flag = 0, cnt = 0;
    int f = 0;
    for (int i = 0; i < len && !flag; i++) {
      if (input[i] == '@') {
        f = 1;
        if (islower(input[i - 1]) && islower(input[i + 1])) {
          address[cnt].l = i - 1;
          address[cnt].r = i + 1;
          address[cnt++].id = i;
        } else {
          flag = 1;
          break;
        }
      }
    }
    if (!f) flag = 1;
    for (int i = 0; i < cnt && f; i++) {
      if (address[i].r == address[i + 1].l) {
        flag = 1;
        break;
      }
    }
    if (flag)
      printf("No solution\n");
    else {
      for (int i = 0; i < len; i++) {
        if (islower(input[i]))
          printf("%c", input[i]);
        else if (input[i] == '@') {
          if (i != address[cnt - 1].id)
            printf("%c%c,", input[i], input[i + 1]);
          else
            printf("%c%c", input[i], input[i + 1]);
          i++;
        }
      }
      printf("\n");
    }
  }
  return 0;
}
