#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T abs(const T& x) {
  return x > 0 ? x : -x;
}
template <class T>
inline T sqr(const T& x) {
  return x * x;
}
template <class T>
inline string tostr(const T& a) {
  ostringstream os("");
  os << a;
  return os.str();
}
const int inf = 1999999999;
const double pi = acos(-1.0);
const double eps = 1e-9;
inline char gc() {
  char c;
  while (isspace(c = getchar()))
    ;
  return c;
}
inline int gs(char* s) {
  fgets(s, 9999999, stdin);
  int l = strlen(s);
  while (l && isspace(s[l - 1])) s[--l] = 0;
  return l;
}
int main() {
  char input[110];
  scanf("%s", input);
  int len = strlen(input);
  bool neg = false;
  if (input[0] == '-') {
    printf("(");
    neg = true;
  }
  printf("$");
  bool f = false;
  for (int i = 0; i < len; i++) {
    if (input[i] == '.') {
      input[i] = ' ';
      f = true;
      break;
    }
  }
  if (!f) {
    input[len++] = ' ';
    input[len++] = '0';
    input[len++] = '0';
  }
  char a[101], b[101];
  if (!neg)
    sscanf(input, "%s %s", a, b);
  else
    sscanf(input + 1, "%s %s", a, b);
  int la = strlen(a), lb = strlen(b);
  for (int i = 0; i < la; i++) {
    printf("%c", a[i]);
    if ((la - i - 1) % 3 == 0 && i != la - 1) printf(",");
  }
  printf(".");
  for (int i = lb; i < 2; i++) b[i] = '0';
  b[2] = '\0';
  printf("%s", b);
  if (neg) printf(")");
  printf("\n");
  return 0;
}
