#include <bits/stdc++.h>
using namespace std;
vector<int> f(vector<int> &a) {
  vector<int> ans;
  ans.resize(a.size() + 1);
  for (int i = 1; i < (int)ans.size(); i++) ans[i] = a[i - 1];
  return ans;
}
void add(vector<int> &a, vector<int> b) {
  for (int i = 0; i < (int)b.size(); i++) {
    if (i == (int)a.size()) a.push_back(0);
    a[i] += b[i];
  }
}
void euclid(vector<int> &a, vector<int> &b, int n) {
  if (n == 0) return;
  add(b, f(a));
  euclid(b, a, n - 1);
}
int main() {
  int n;
  cin >> n;
  vector<int> a;
  a.push_back(1);
  vector<int> b;
  euclid(a, b, n);
  if (a.size() < b.size()) swap(a, b);
  cout << (int)a.size() - 1 << '\n';
  for (int it : a) {
    if (it % 2)
      cout << 1;
    else
      cout << 0;
    cout << ' ';
  }
  cout << '\n';
  cout << (int)b.size() - 1 << '\n';
  for (int it : b) {
    if (it % 2)
      cout << 1;
    else
      cout << 0;
    cout << ' ';
  }
  return 0;
}
