alexjercan/bugnet huggingface dataset:
Problem p00104 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <iostream>
using namespace std;
int px, py;
int w, h, f[100][100];

bool cheak() {
  if (f[px][py] == 0) {
    cout << "LOOP" << endl;
    return true;
  }
  return false;
}

int main() {

  char ma[100][100];
  while (cin >> h >> w, w + h) {
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        cin >> ma[j][i];
        f[j][i] = 1;
      }
    }

    px = 0, py = 0;
    while (1) {
      if (ma[px][py] == '>') {
        px++;
        if (cheak())
          break;
      } else if (ma[px][py] == 'v') {
        py++;
        if (cheak())
          break;
      } else if (ma[px][py] == '<') {
        px--;
        if (cheak())
          break;
      } else if (ma[px][py] == '^') {
        py--;
        if (cheak())
          break;
      } else {
        cout << px << " " << py << endl;
        break;
      }
      f[px][py] = 0;
    }
  }
}

Error: TLE

Fixed submission:

#include <iostream>

using namespace std;
int H, W;
int x = 0, y = 0;
int rog[100][100];
bool check() {
  if (rog[x][y] == 0) {
    cout << "LOOP" << endl;
    return true;
  } else {
    return false;
  }
}
int main() {
  char map[100][100];

  while (cin >> H >> W, W + H) {

    int x = 0, y = 0;
    map[100][100] = {};
    for (int i = 0; i < H; i++) {
      for (int j = 0; j < W; j++) {
        cin >> map[i][j];
        rog[i][j] = 1;
      }
    }
    while (1) {
      if (map[x][y] == '>') {
        x++;
        if (check())
          break;
      } else if (map[x][y] == 'v') {
        y++;
        if (check())
          break;
      } else if (map[x][y] == '<') {
        x--;
        if (check())
          break;
      } else if (map[x][y] == '^') {
        y--;
        if (check())
          break;
      } else {
        cout << x << " " << y << endl;
        break;
      }

      rog[x][y] = 0;
    }
  }
  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Memory Limit Exceeded

#include <algorithm>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;
typedef pair<int, int> P;
#define pu push
#define pb push_back
#define mp make_pair
#define eps 1e-7
#define INF 20000000
map<string, vector<int>> book;
int main() {
  string s;
  int page;
  while (cin >> s >> page) {
    book[s].pb(page);
  }
  for (map<string, vector<int>>::iterator it = book.begin(); it != book.end();
       it++) {
    sort(it->second.begin(), it->second.end());
    cout << it->first << endl;
    for (int i = 0; i < (it->second.size()); i++) {
      cout << it->second[i];
      if (i == ((it->second.size()) - 1)) {
        cout << endl;
      } else {
        cout << ' ';
      }
    }
  }
  return 0;
}

Error: MLE

Fixed submission:

#include <algorithm>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;
typedef pair<int, int> P;
#define pu push
#define pb push_back
#define mp make_pair
#define eps 1e-7
#define INF 20000000
string word[100];
vector<int> p[100];
int n = 0;
int search(string s) {
  for (int i = 0; i < n; i++) {
    if (word[i] == s)
      return i;
  }
  return -1;
}
int main() {
  while (1) {
    string s;
    int page;
    cin >> s >> page;
    if (search(s) != -1) {
      p[search(s)].pb(page);
    } else {
      word[n] = s;
      p[n].pb(page);
      n++;
    }
  }
  string str;
  while (cin >> str) {
    int num = search(str);
    sort(p[num].begin(), p[num].end());
    for (int i = 0; i < p[num].size(); i++) {
      cout << p[num][i];
      if (i == p[num].size() - 1) {
        cout << endl;
      } else {
        cout << ' ';
      }
    }
  }
  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <bits/stdc++.h>
using namespace std;
int main() {
  map<string, vector<int>> A;
  string s;
  int n;
  while (cin >> s >> n) {
    A[s].push_back(n);
  }
  map<string, vector<int>>::iterator t = A.begin();
  while (t != A.end()) {
    cout << t->first << endl;
    sort(t->second.begin(), t->second.end());
    for (int i = 0; i < t->second.size(); i++) {
      if (i)
        cout << ' ' << t->second[i];
      else
        cout << t->second[i];
    }
    cout << endl;
    t++;
  }
}

Error: TLE

Fixed submission:

#include <bits/stdc++.h>
using namespace std;
int main() {
  map<string, vector<int>> A;
  string s;
  int n;
  while (cin >> s >> n) {
    A[s].push_back(n);
  }
  map<string, vector<int>>::iterator t = A.begin();
  while (t != A.end()) {
    cout << t->first << endl;
    sort(t->second.begin(), t->second.end());
    for (int i = 0; i < t->second.end() - t->second.end(); i++) {
      if (i)
        cout << ' ' << t->second[i];
      else
        cout << t->second[i];
    }
    cout << endl;
  }
}
Problem p00105 (C++) — buggy submission, verdict: Runtime Error

#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std;

struct dic {
  string s;
  int page[1001];
};

dic d[101];

int comp(const void *a, const void *b) {
  if (((dic *)a)->s > ((dic *)b)->s)
    return 1;
  else
    return -1;
}

int main(void) {
  int i, j, p, tail = 0;
  string str;
  while ((cin >> str) != NULL) {
    for (i = 0; i < tail; i++) {
      if (str == d[i].s) {
        cin >> p;
        d[i].page[p] = 1;
        break;
      }
    }
    if (i == tail) {
      d[tail].s = str;
      cin >> p;
      d[tail].page[p] = 1;
      tail++;
    }
  }

  qsort(&d, tail, sizeof(dic), comp);
  int f;
  for (i = 0; i < tail; i++) {
    f = 0;
    cout << d[i].s << endl;
    for (j = 0; j < 1001; j++) {
      if (d[i].page[j] == 1) {
        if (f)
          cout << " " << j;
        else {
          cout << j;
          f++;
        }
      }
    }
    cout << endl;
  }
  return 0;
}

Error: 0

Fixed submission:

#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std;

struct dic {
  string s;
  int page[1001];
};

int comp(const void *a, const void *b) {
  if (((dic *)a)->s > ((dic *)b)->s)
    return 1;
  else
    return -1;
}

int main(void) {
  int i, j, p, tail = 0;
  string str;
  dic d[100];
  memset(d, 0, sizeof(d));
  int count = 0;
  while (count++ < 100) {
    cin >> str;
    for (i = 0; i < tail; i++) {
      if (str == d[i].s) {
        cin >> p;
        d[i].page[p] = 1;
        break;
      }
    }
    if (i == tail) {
      d[tail].s = str;
      cin >> p;
      d[tail].page[p] = 1;
      tail++;
    }
  }

  qsort(&d, tail, sizeof(dic), comp);
  int f = 0;
  for (i = 0; i < tail; i++) {
    f = 0;
    cout << d[i].s << endl;
    for (j = 0; j < 1001; j++) {
      if (d[i].page[j] == 1) {
        if (f)
          cout << " " << j;
        else {
          cout << j;
          f++;
        }
      }
    }
    cout << endl;
  }
  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Runtime Error

#include <bits/stdc++.h>
using namespace std;
pair<string, int> a[100];
int main() {
  int t = 0, g, i;
  while (cin >> a[t].first >> a[t].second)
    t++;
  sort(a, a + t);
  string f, b = a[0].first;
  cout << b << endl << a[0].second;
  for (i = 1; i < t; i++) {
    bool n = 0;
    f = a[i].first, g = a[i].second;
    if (f == b)
      n = 1;
    if (n)
      cout << " " << g;
    else
      cout << endl << f << endl << g;
    b = f;
  }
  cout << endl;
  return 0;
}

Error: -11

Fixed submission:

#include <bits/stdc++.h>
using namespace std;
pair<string, int> a[1];
int main() {
  int t = 0, g, i;
  while (cin >> a[t].first >> a[t].second)
    t++;
  sort(a, a + t);
  string f, b = a[0].first;
  cout << b << endl << a[0].second;
  for (i = 1; i < t; i++) {
    bool n = 0;
    f = a[i].first, g = a[i].second;
    if (f == b)
      n = 1;
    if (n)
      cout << " " << g;
    else
      cout << endl << f << endl << g;
    b = f;
  }
  cout << endl;
  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Memory Limit Exceeded

#include <algorithm>
#include <iostream>
#include <map>
#include <vector>

int main() {
  std::string s;
  int p;
  std::map<std::string, std::vector<int>> m;
  while (std::cin >> s >> p, !std::cin.eof()) {
    m[s].push_back(p);
  }
  std::map<std::string, std::vector<int>>::iterator m_it = m.begin();
  while (m_it != m.end()) {
    std::cout << (*m_it).first << std::endl;
    std::sort((*m_it).second.begin(), (*m_it).second.end());
    std::vector<int>::iterator v_it = (*m_it).second.begin();
    while (v_it != (*m_it).second.end()) {
      std::cout << *v_it;
      v_it++;
      (v_it == (*m_it).second.end()) ? std::cout << std::endl
                                     : std::cout << " ";
    }
    m_it++;
  }
  return 0;
}

Error: MLE

Fixed submission:

#include <algorithm>
#include <iostream>
#include <map>
#include <vector>

int main() {
  std::string s;
  int p;
  std::map<std::string, std::vector<int>> m;
  while (std::cin >> s >> p, p != 0) {
    m[s].push_back(p);
  }
  std::map<std::string, std::vector<int>>::iterator m_it = m.begin();
  while (m_it != m.end()) {
    std::cout << (*m_it).first << std::endl;
    std::sort((*m_it).second.begin(), (*m_it).second.end());
    std::vector<int>::iterator v_it = (*m_it).second.begin();
    while (v_it != (*m_it).second.end()) {
      std::cout << *v_it;
      v_it++;
      (v_it == (*m_it).second.end()) ? std::cout << std::endl
                                     : std::cout << " ";
    }
    m_it++;
  }
  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Memory Limit Exceeded

#include <algorithm>
#include <iostream>
#include <map>
#include <vector>

int main() {
  std::string s;
  int p;
  std::map<std::string, std::vector<int>> m;
  while (std::cin >> s >> p, !std::cin.eof()) {
    m[s].push_back(p);
  }
  std::map<std::string, std::vector<int>>::iterator m_it = m.begin();
  while (m_it != m.end()) {
    std::cout << (*m_it).first << std::endl;
    std::sort((*m_it).second.begin(), (*m_it).second.end());
    std::vector<int>::iterator v_it = (*m_it).second.begin();
    while (v_it != (*m_it).second.end()) {
      std::cout << *v_it;
      v_it++;
      (v_it == (*m_it).second.end()) ? std::cout << std::endl
                                     : std::cout << " ";
    }
    m_it++;
  }
  return 0;
}
/*
Sample Input
style 12
even 25
introduction 3
easy 9
style 7
document 13
style 21
even 18
Output for the Sample Input
document
13
easy
9
even
18 25
introduction
3
style
7 12 21
*/

Error: MLE

Fixed submission:

#include <algorithm>
#include <iostream>
#include <map>
#include <vector>

int main() {
  std::string s;
  int p;
  std::map<std::string, std::vector<int>> m;
  while (std::cin >> s >> p, p != 0) {
    m[s].push_back(p);
  }
  std::map<std::string, std::vector<int>>::iterator m_it = m.begin();
  while (m_it != m.end()) {
    std::cout << (*m_it).first << std::endl;
    std::sort((*m_it).second.begin(), (*m_it).second.end());
    std::vector<int>::iterator v_it = (*m_it).second.begin();
    while (v_it != (*m_it).second.end()) {
      std::cout << *v_it;
      v_it++;
      (v_it == (*m_it).second.end()) ? std::cout << std::endl
                                     : std::cout << " ";
    }
    m_it++;
  }
  return 0;
}
/*
Sample Input
style 12
even 25
introduction 3
easy 9
style 7
document 13
style 21
even 18
Output for the Sample Input
document
13
easy
9
even
18 25
introduction
3
style
7 12 21
*/
Problem p00105 (C++) — buggy submission, verdict: Runtime Error

#include <algorithm>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;
int main(void) {
  map<string, vector<int>> index;

  string sbuf;
  int ibuf;

  while (cin >> sbuf >> ibuf) {
    index[sbuf].push_back(ibuf);
  }

  for (auto &elem : index) {
    sort(elem.second.begin(), elem.second.end());
    cout << elem.first << endl;
    for (auto vecElem : elem.second) {
      cout << vecElem;
      if (vecElem != *(elem.second.end() - 1)) {
        cout << " ";
      }
    }
    cout << endl;
  }
  return 0;
}

Error: -11

Fixed submission:

#include <algorithm>
#include <cstdio>
#include <map>
#include <string>
#include <vector>
using namespace std;
int main(void) {
  map<string, vector<int>> index;

  char cbuf[31];
  int ibuf;

  while (scanf("%s %d", cbuf, 31, &ibuf) != EOF) {
    index[cbuf].push_back(ibuf);
  }

  for (auto &elem : index) {
    sort(elem.second.begin(), elem.second.end());
    printf("%s\\n", elem.first.c_str());
    for (auto &vecElem : elem.second) {
      printf("%d ", vecElem);
    }
    printf("\\n");
  }

  return 0;
}
Problem p00105 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <iostream>
#pragma warning(disable : 4786)
#include <algorithm>
#include <map>
#include <string>
#include <vector>
using namespace std;
int main() {
  string a;
  map<string, vector<int>> d;
  while (getline(cin, a)) {
    string b, h = "";
    int c, sum = 0;
    a += " ";
    for (int i = 0; i < a.length(); i++) {
      if (a[i] == ' ') {
        if (sum == 0)
          b = h;
        else
          c = atoi(h.c_str());
        sum++;
        h = "";
      } else
        h += a[i];
    }
    d[b].push_back(c);
  }
  map<string, vector<int>>::iterator t = d.begin();
  while (t != d.end()) {
    string k = (*t).first;
    sort(d[k].begin(), d[k].end());
    cout << k << endl;
    vector<int>::iterator ite = d[k].begin();
    for (ite = d[k].begin(); ite != d[k].end(); ++ite) {
      if (ite == d[k].begin())
        cout << *ite;
      else
        cout << " " << *ite;
    }
    cout << "\\n";
    t++;
  }
}

Error: TLE

Fixed submission:

#include <iostream>
#pragma warning(disable : 4786)
#include <algorithm>
#include <map>
#include <string>
#include <vector>
using namespace std;
int main() {
  string a;
  map<string, vector<int>> d;
  while (getline(cin, a)) {
    string b, h = "";
    int c, sum = 0;
    a += " ";
    for (int i = 0; i < a.length(); i++) {
      if (a[i] == ' ') {
        if (sum == 0)
          b = h;
        else
          c = atoi(h.c_str());
        sum++;
        h = "";
      } else
        h += a[i];
    }
    d[b].push_back(c);
    d[b].clear();
    d[b].push_back(c);
  }
  map<string, vector<int>>::iterator t = d.begin();
  while (t != d.end()) {
    string k = (*t).first;
    sort(d[k].begin(), d[k].end());
    cout << k;
    for (int i = 0; i != d[k].size(); i++) {
      cout << " " << d[k][i];
    }
    cout << endl;
    t++;
  }
  for (int i = 0; i < 100000000000; i++) {
    for (int j = 0; j < 1000000000000000; j++) {
      for (int z = 0; z < 100000000000; z++) {
      }
    }
  }
}
Problem p00105 (C++) — buggy submission, verdict: Memory Limit Exceeded

#include <algorithm>
#include <iostream>
#include <map>
#include <set>
#include <string>
using namespace std;

static const int MAX_WORD_LEN = 30;
static const int MAX_PAGE_NUM = 1000;
static const int MAX_BOOK_NUM = 100;

static const int VOID_PAGE = -1;

class BookIndex {
public:
  BookIndex() {}
  ~BookIndex() {}
  // ????????????????????°????????????
  void SetWord(string word_, int page_) {
    word_page.insert(M::value_type(word_, page_));
  }
  // ??¨??????????????????????????°?????????
  void PrintWords() {
    for (MIT it = word_page.begin(); it != word_page.end();) {
      cout << it->first << endl;
      int count = word_page.count(it->first);
      set<int> st;
      for (int i = 0; i < count; i++) {
        st.insert(it++->second);
      }
      set<int>::iterator st_it = st.begin();
      cout << *st_it++;
      for (; st_it != st.end(); st_it++) {
        cout << " " << *st_it;
      }
      cout << endl;
    }
  }

private:
  typedef multimap<string, int> M;
  typedef M::iterator MIT;
  M word_page;
};

int main() {
  BookIndex book;

  // ??\\????????°
  string word;
  int page;
  while (cin >> word) {
    cin >> page;
    book.SetWord(word, page);
  }
  book.PrintWords();
}

Error: MLE

Fixed submission:

#include <algorithm>
#include <iostream>
#include <map>
#include <set>
#include <string>
using namespace std;

static const int MAX_WORD_LEN = 30;
static const int MAX_PAGE_NUM = 1000;
static const int MAX_BOOK_NUM = 100;

static const int VOID_PAGE = -1;

class BookIndex {
public:
  BookIndex() {}
  ~BookIndex() {}
  // ????????????????????°????????????
  void SetWord(string word_, int page_) {
    word_page.insert(M::value_type(word_, page_));
  }
  // ??¨??????????????????????????°?????????
  void PrintWords() {
    for (MIT it = word_page.begin(); it != word_page.end();) {
      cout << it->first << endl;
      int count = word_page.count(it->first);
      set<int> st;
      for (int i = 0; i < count; i++) {
        st.insert(it++->second);
      }
      set<int>::iterator st_it = st.begin();
      cout << *st_it++;
      for (; st_it != st.end(); st_it++) {
        cout << " " << *st_it;
      }
      cout << endl;
    }
  }

private:
  typedef multimap<string, int> M;
  typedef M::iterator MIT;
  M word_page;
};

int main() {
  BookIndex book;
  char input[MAX_WORD_LEN] = {};

  // ??\\????????°
  string word;
  int page;
  while (cin >> word, word != "0") {
    // ??\\????????????????????§??????
    {
      char *ctx = NULL;
      cin >> input;
      page = atoi(input);
    }
    book.SetWord(word, page);
  }
  book.PrintWords();
}
Problem p00105 (C++) — buggy submission, verdict: Runtime Error

#include <bits/stdc++.h>
#define range(i, a, b) for (int i = (a); i < (b); i++)
#define rep(i, b) range(i, 0, b)
#define vi vector<int>
#define pb(a) push_back(a)
#define all(a) (a).begin(), (a).end()
#define debug(x) cout << "<debug " << x << endl;
#define inf 5000
using namespace std;

int main() {
  string word;
  int page;
  map<string, vector<int>> info;

  while (cin >> word >> page) {
    info[word].pb(page);
  }
  map<string, vector<int>>::iterator it;
  for (it = info.begin(); it != info.end(); it++) {
    vector<int> &pageList = it->second;
    cout << it->first << endl;
    sort(all(pageList));
    for (int i = 0; i < pageList.size(); i++) {
      if (i)
        cout << ' ';
      cout << pageList[i];
    }
    cout << endl;
  }
}

Error: WA

Fixed submission:

#include <algorithm>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <math.h>
#include <queue>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <vector>
#define range(i, a, b) for (int i = (a); i < (b); i++)
#define rep(i, b) range(i, 0, b)
#define debug(x) cout << "debug " << x << endl;
using namespace std;

struct Book {
  string s;
  vector<int> page;
};

int main() {
  string s;
  int p, i = 0;
  struct Book book[105];
  while (cin >> s >> p) {
    bool c = true;
    rep(j, i) {
      if (book[j].s == s) {
        book[j].page.push_back(p);
        c = false;
      }
    }
    if (c) {
      book[i].s = s;
      book[i].page.push_back(p);
      i++;
    }
  }
  rep(j, i + 1) {
    for (int k = i; k >= j; k--) {
      if (book[k].s < book[k - 1].s) {
        struct Book g = book[k];
        book[k] = book[k - 1];
        book[k - 1] = g;
      }
    }
  }
  rep(j, i + 1) {
    debug(book[j].s) sort(book[j].page.begin(), book[j].page.end());
  }
  range(j, 1, i + 1) {
    cout << book[j].s << endl;
    rep(k, book[j].page.size()) {
      if (k)
        cout << ' ';
      cout << book[j].page[k];
    }
    cout << endl;
  }
}
Problem p00105 (C++) — buggy submission, verdict: Runtime Error

#include <algorithm>
#include <bitset>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <time.h>
#include <vector>
using namespace std;
#define FOR(I, F, N) for (int I = F; I < (int)(N); I++)
#define rep(i, n) FOR(i, 0, n)
#define FIN(V) cout << V << endl
#define pb push_back
#define INF (1 << 28)

template <typename T> void remove(vector<T> &vector, unsigned int index) {
  vector.erase(vector.begin() + index);
}

typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;
int StrToInt(string);
string IntToStr(int);
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};

map<string, vector<int>> list;
vector<string> names;
map<string, bool> check;

int main(void) {
  string S;
  int n;
  while (cin >> S >> n) {
    list[S].push_back(n);
    names.pb(S);
  }
  sort(names.begin(), names.end());
  rep(i, names.size()) {
    S = names[i];
    if (check[S])
      continue;
    sort(list[S].begin(), list[S].end());
    cout << S << endl;
    rep(i, list[S].size()) {
      if (i != 0)
        cout << " ";
      cout << list[S][i];
    }
    check[S] = true;
    cout << endl;
  }

  return 0;
}

int StrToInt(string s) {
  stringstream ss;
  ss << s;
  int val;
  ss >> val;
  return val;
}
string IntToStr(int i) {
  stringstream ss;
  ss << i;
  return ss.str();
}

Error: TLE

Fixed submission:

#include <algorithm>
#include <bitset>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iterator>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <time.h>
#include <vector>
using namespace std;
#define FOR(I, F, N) for (int I = F; I < (int)(N); I++)
#define rep(i, n) FOR(i, 0, n)
#define FIN(V) cout << V << endl
#define pb push_back
#define INF (1 << 28)

template <typename T> void remove(vector<T> &vector, unsigned int index) {
  vector.erase(vector.begin() + index);
}

typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;
int StrToInt(string);
string IntToStr(int);
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};

map<string, vector<int>> list;

int main(void) {
  string S;
  int n;
  while (cin >> S >> n, n) {
    list[S].push_back(n);
  }
  while (cin >> S) {
    sort(list[S].begin(), list[S].end());
    rep(i, list[S].size()) {
      if (i != 0)
        cout << " ";
      cout << list[S][i];
    }
    cout << endl;
  }

  return 0;
}

int StrToInt(string s) {
  stringstream ss;
  ss << s;
  int val;
  ss >> val;
  return val;
}
string IntToStr(int i) {
  stringstream ss;
  ss << i;
  return ss.str();
}