// To understand what is happening in this file, please go to the end of the file.
#include "bits/stdc++.h"
#define int long long
#define vi vector< int >
#define fastIO() ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define all(x) x.begin(),x.end()
#define endl '\n'
using namespace std;
/*
▄████ ██▓ ██▓▄▄▄█████▓ ▄████▄ ██░ ██
██▒ ▀█▒▓██▒ ▓██▒▓ ██▒ ▓▒▒██▀ ▀█ ▓██░ ██▒
▒██░▄▄▄░▒██░ ▒██▒▒ ▓██░ ▒░▒▓█ ▄ ▒██▀▀██░
░▓█ ██▓▒██░ ░██░░ ▓██▓ ░ ▒▓▓▄ ▄██▒░▓█ ░██
░▒▓███▀▒░██████▒░██░ ▒██▒ ░ ▒ ▓███▀ ░░▓█▒░██▓
░▒ ▒ ░ ▒░▓ ░░▓ ▒ ░░ ░ ░▒ ▒ ░ ▒ ░░▒░▒
░ ░ ░ ░ ▒ ░ ▒ ░ ░ ░ ▒ ▒ ░▒░ ░
░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░
*/
template<typename typC> istream &operator>>(istream &cin,vector<typC> &a) { for (auto &x:a) cin>>x; return cin; }
template<typename typC> ostream &operator<<(ostream &cout,const vector<typC> &a) { int n=a.size(); if (!n) return cout; cout<<a[0]; for (int i=1; i<n; i++) cout<<' '<<a[i]; return cout; }
void itIsADream(){
string s; cin >> s;
int n = s.size();
vi pos;
for (int i = 0; i < n; i++) {
if (s[i] == '@') {
pos.push_back(i);
}
}
int m = pos.size();
if (pos.empty() || pos[0] == 0 || pos.back() == n - 1) {
cout << "No solution" << endl;
return;
}
for (int i = 0; i < m - 1; i++) {
if (pos[i + 1] - pos[i] < 3) {
cout << "No solution" << endl;
return;
}
}
string ans = "";
int cur = 0;
for (int i = 0; i < m; i++) {
int end;
if (i == m - 1) {
end = n - 1;
} else {
end = pos[i] + 1;
}
ans += s.substr(cur, end - cur + 1);
if (i < (int)m - 1) {
ans += ",";
}
cur = end + 1;
}
cout << ans << endl;
}
int32_t main()
{
fastIO();
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
int t = 1;
// cin >> t;
while (t--)
{
itIsADream();
}
return 0;
}
// to understand what is happening in this file, please go to the starting of the file.
Ly8gVG8gdW5kZXJzdGFuZCB3aGF0IGlzIGhhcHBlbmluZyBpbiB0aGlzIGZpbGUsIHBsZWFzZSBnbyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLgoKI2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSB2aSB2ZWN0b3I8IGludCA+CiNkZWZpbmUgZmFzdElPKCkgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCksY2luLnRpZSgwKSxjb3V0LnRpZSgwKTsKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBlbmRsICdcbicKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovKgoKCiAg4paE4paI4paI4paI4paIICDilojilojilpMgICAgIOKWiOKWiOKWk+KWhOKWhOKWhOKWiOKWiOKWiOKWiOKWiOKWkyDiloTilojilojilojilojiloQgICDilojilojilpEg4paI4paICiDilojilojilpIg4paA4paI4paS4paT4paI4paI4paSICAgIOKWk+KWiOKWiOKWkuKWkyAg4paI4paI4paSIOKWk+KWkuKWkuKWiOKWiOKWgCDiloDiloggIOKWk+KWiOKWiOKWkSDilojilojilpIK4paS4paI4paI4paR4paE4paE4paE4paR4paS4paI4paI4paRICAgIOKWkuKWiOKWiOKWkuKWkiDilpPilojilojilpEg4paS4paR4paS4paT4paIICAgIOKWhCDilpLilojilojiloDiloDilojilojilpEK4paR4paT4paIICDilojilojilpPilpLilojilojilpEgICAg4paR4paI4paI4paR4paRIOKWk+KWiOKWiOKWkyDilpEg4paS4paT4paT4paEIOKWhOKWiOKWiOKWkuKWkeKWk+KWiCDilpHilojilogK4paR4paS4paT4paI4paI4paI4paA4paS4paR4paI4paI4paI4paI4paI4paI4paS4paR4paI4paI4paRICDilpLilojilojilpIg4paRIOKWkiDilpPilojilojilojiloAg4paR4paR4paT4paI4paS4paR4paI4paI4paTCiDilpHilpIgICDilpIg4paRIOKWkuKWkeKWkyAg4paR4paR4paTICAgIOKWkiDilpHilpEgICDilpEg4paR4paSIOKWkiAg4paRIOKWkiDilpHilpHilpLilpHilpIKICDilpEgICDilpEg4paRIOKWkSDilpIgIOKWkSDilpIg4paRICAgIOKWkSAgICAgIOKWkSAg4paSICAgIOKWkiDilpHilpLilpEg4paRCuKWkSDilpEgICDilpEgICDilpEg4paRICAgIOKWkiDilpEgIOKWkSAgICAgIOKWkSAgICAgICAgIOKWkSAg4paR4paRIOKWkQogICAgICDilpEgICAgIOKWkSAg4paRIOKWkSAgICAgICAgICAg4paRIOKWkSAgICAgICDilpEgIOKWkSAg4paRCgoqLwoKdGVtcGxhdGU8dHlwZW5hbWUgdHlwQz4gaXN0cmVhbSAmb3BlcmF0b3I+Pihpc3RyZWFtICZjaW4sdmVjdG9yPHR5cEM+ICZhKSB7IGZvciAoYXV0byAmeDphKSBjaW4+Png7IHJldHVybiBjaW47IH0KdGVtcGxhdGU8dHlwZW5hbWUgdHlwQz4gb3N0cmVhbSAmb3BlcmF0b3I8PChvc3RyZWFtICZjb3V0LGNvbnN0IHZlY3Rvcjx0eXBDPiAmYSkgeyBpbnQgbj1hLnNpemUoKTsgaWYgKCFuKSByZXR1cm4gY291dDsgY291dDw8YVswXTsgZm9yIChpbnQgaT0xOyBpPG47IGkrKykgY291dDw8JyAnPDxhW2ldOyByZXR1cm4gY291dDsgfQoKCgp2b2lkIGl0SXNBRHJlYW0oKXsKICAgIHN0cmluZyBzOyBjaW4gPj4gczsKICAgIGludCBuID0gcy5zaXplKCk7CgogICAgdmkgcG9zOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoc1tpXSA9PSAnQCcpIHsKICAgICAgICAgICAgcG9zLnB1c2hfYmFjayhpKTsKICAgICAgICB9CiAgICB9CgogICAgaW50IG0gPSBwb3Muc2l6ZSgpOwogICAgaWYgKHBvcy5lbXB0eSgpIHx8IHBvc1swXSA9PSAwIHx8IHBvcy5iYWNrKCkgPT0gbiAtIDEpIHsKICAgICAgICBjb3V0IDw8ICJObyBzb2x1dGlvbiIgPDwgZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtIC0gMTsgaSsrKSB7CiAgICAgICAgaWYgKHBvc1tpICsgMV0gLSBwb3NbaV0gPCAzKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5vIHNvbHV0aW9uIiA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHN0cmluZyBhbnMgPSAiIjsKICAgIGludCBjdXIgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSB7CiAgICAgICAgaW50IGVuZDsKICAgICAgICAKICAgICAgICBpZiAoaSA9PSBtIC0gMSkgewogICAgICAgICAgICBlbmQgPSBuIC0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlbmQgPSBwb3NbaV0gKyAxOwogICAgICAgIH0KCiAgICAgICAgYW5zICs9IHMuc3Vic3RyKGN1ciwgZW5kIC0gY3VyICsgMSk7CiAgICAgICAgCiAgICAgICAgaWYgKGkgPCAoaW50KW0gLSAxKSB7CiAgICAgICAgICAgIGFucyArPSAiLCI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGN1ciA9IGVuZCArIDE7CiAgICB9CgogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKfQogCmludDMyX3QgbWFpbigpCnsKICAgIGZhc3RJTygpOwogICAgLy8gZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICAvLyBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKQogICAgewogICAgICAgIGl0SXNBRHJlYW0oKTsKICAgIH0KICAgIHJldHVybiAwOwp9CgovLyB0byB1bmRlcnN0YW5kIHdoYXQgaXMgaGFwcGVuaW5nIGluIHRoaXMgZmlsZSwgcGxlYXNlIGdvIHRvIHRoZSBzdGFydGluZyBvZiB0aGUgZmlsZS4=