#include <bits/stdc++.h>
using namespace std;
typedef priority_queue<long long, vector<long long>, greater<long long>>
    minHeap;
const long long MD = 1e9 + 7;
inline long long mul(long long a, long long b) { return (a * b) % MD; }
inline long long po(long long a, long long b) {
  long long ans = 1;
  while (b > 0) {
    if (b & 1) ans = mul(ans, a);
    a = mul(a, a);
    b /= 2;
  }
  return ans;
}
long long INF = 1e17;
const int N = 2e5 + 22;
long long n, m, t, k;
long long arr[N];
long long x;
string s;
vector<string> a, b;
int main() {
  ios::sync_with_stdio(false);
  cin >> s;
  string cur = "";
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == ',' || s[i] == ';') {
      bool isn = 1;
      if (cur.size() == 0) isn = 0;
      for (char c : cur) isn &= isdigit(c);
      if (isn && (cur[0] != '0' || cur.size() == 1))
        a.push_back(cur);
      else
        b.push_back(cur);
      cur = "";
    } else
      cur += s[i];
  }
  bool isn = 1;
  if (cur.size() == 0) isn = 0;
  for (char c : cur) isn &= isdigit(c);
  if (isn && (cur[0] != '0' || cur.size() == 1))
    a.push_back(cur);
  else
    b.push_back(cur);
  if (a.size() == 0)
    cout << "-\n";
  else {
    cout << "\"";
    for (int i = 0; i < a.size() - 1; i++) cout << a[i] << ",";
    cout << a.back() << "\"\n";
  }
  if (b.size() == 0)
    cout << "-\n";
  else {
    cout << "\"";
    for (int i = 0; i < b.size() - 1; i++) cout << b[i] << ",";
    cout << b.back() << "\"\n";
  }
  return 0;
}
