#include <bits/stdc++.h>
using namespace std;
long long SNMpar[1000];
long long SNMrang[1000];
void SetUn(long long a) {
  SNMpar[a] = a;
  SNMrang[a] = 1;
}
long long FindPar(long long b) {
  if (SNMpar[b] == b) return b;
  return SNMpar[b] = FindPar(SNMpar[b]);
}
long long UnitUn(long long a, long long b) {
  a = FindPar(a);
  b = FindPar(b);
  if (a != b) {
    if (SNMrang[a] > SNMrang[b]) swap(a, b);
    SNMpar[b] = a;
    SNMrang[a] += SNMrang[b];
  }
}
double mas[5000];
double tre[20000];
void BuildTree(long long l, long long r, long long v) {
  if (l == r)
    tre[v] = mas[l];
  else {
    long long m = (l + r) / 2;
    BuildTree(l, m, 2 * v);
    BuildTree(m + 1, r, 2 * v + 1);
    tre[v] = tre[2 * v] + tre[2 * v + 1];
  }
}
long long FindSum(long long tl, long long tr, long long l, long long r,
                  long long v) {
  if (l > r) return 0;
  if (tl == l && tr == r) return tre[v];
  long long m = (tl + tr) / 2;
  return (FindSum(tl, m, l, min(m, r), 2 * v) +
          FindSum(m + 1, tr, max(l, m + 1), r, 2 * v + 1));
}
void UpdTree(long long tl, long long tr, long long v, long long place,
             long long value) {
  if (tl == place && tr == place)
    tre[v] = value;
  else {
    long long m = (tr + tl) / 2;
    if (place <= m)
      UpdTree(tl, m, 2 * v, place, value);
    else
      UpdTree(m + 1, tr, 2 * v + 1, place, value);
    tre[v] = tre[v * 2] + tre[v * 2 + 1];
  }
}
long long Mark[1000];
set<pair<long long, long long>> rebra;
long long rebro;
long long PutIn[1000];
vector<vector<pair<long long, long long>>> Graph;
void Djkstra(long long a) {
  for (long long i = 0; i < Graph.size(); i++) {
    PutIn[i] = 100000000000000;
  }
  PutIn[a] = 0;
  rebra.insert(make_pair(PutIn[a], a));
  while (!rebra.empty()) {
    rebro = rebra.begin()->second;
    rebra.erase(*rebra.begin());
    for (long long i = 0; i < Graph[rebro].size(); i++) {
      long long b = Graph[rebro][i].second;
      long long length = Graph[rebro][i].first;
      if (length + PutIn[rebro] < PutIn[b]) {
        rebra.erase(make_pair(PutIn[b], b));
        PutIn[b] = length + PutIn[rebro];
        rebra.insert(make_pair(PutIn[b], b));
      }
    }
  }
}
long long binMas[1000];
long long m;
long long BinSearch(long long a, long long l, long long r) {
  if (l == r) return l;
  m = (l + r) / 2;
  if (a > m) return BinSearch(a, m + 1, r);
  return BinSearch(a, l, m);
}
long long a, b, n, i, d, c;
int main() {
  cin >> n >> m;
  for (i = 0; i < m; i++) {
    cin >> c >> d;
  }
  for (i = 0; i < n; i++) {
    cout << i % 2;
  }
}
