#include #include #include #include using namespace std; const int INF = 0x3f3f3f3f; int n, mi; vector vec, ans; void DFS(int rem, int len) { if (rem < 0) return; if (rem == 0) { if (mi > len) { ans.clear(); for (auto i : vec) ans.push_back(i); mi = len; } return; } for (int i = 1; i <= sqrt(rem); ++i) { vec.push_back(i); DFS(rem - i * i, len + i); vec.pop_back(); } } int main() { // freopen("mess.in", "r", stdin); // freopen("mess.out", "w", stdout); scanf("%d", &n); if (n == 1) puts("0"); else { mi = INF; DFS(n, 0); int pre = 1; string s = ""; for (auto i : ans) { pre = 1 - pre; for (int j = 1; j <= i; ++j) { s += pre + '0'; pre = 1 - pre; } } cout << s << endl; } return 0; }