//inlclude before define #define _USE_MATH_DEFINES //include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //typedef typedef vector VI; typedef vector VS; typedef vector VC; typedef vector VD; typedef pair P1; typedef long long int ll; //number #define INF 1e9 #define NUM 1000000007 //itr #define all(x) begin(x),end(x) //repeat #define rep(i,n) for(int i=0;i<(int)(n);i++) #define REP(i,a,b) for(int i=int(a);i=0;i--) //max,min #define chmin(a,b) a=min((a),(b)) #define chmax(a,b) a=max((a),(b)) //function /*ll gcd(ll a, ll b) { if (b == 0) return a; else return gcd(b, a%b); }*/ /*ll lcm(ll a,ll b) { ll g = gcd(a, b); return a * (b / g); }*/ /*int dig(int a) { int sum = 0; while (a) { sum += a % 10; a /= 10; } return sum; }*/ //grid template int x[] = { -1, 0, 1, 0 }; int y[] = { 0,-1,0,1 }; int xx[] = { -1,-1,1,1 }; int yy[] = { 1,-1,1,-1 }; int main() { string s; cin >> s; if (s.size() <= 3) { cout << s << endl; return 0; } if (s.size() % 3 == 0) { rep(i, s.size()) { if (i % 3 == 0 && i != 0) { cout << ','; } cout << s[i]; } } else if (s.size() % 3 == 1) { cout << s[0]<<','; int cnt = 0; REP(i, 1, s.size()) { if (cnt % 3 == 0 && cnt != 0) { cout << ','; } cout << s[i]; cnt++; } } else if (s.size() % 3 == 2) { cout << s[0] <