#include <bits/stdc++.h>
using namespace std;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= 10000;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % 10000;
    a = a * a % 10000;
  }
  return res;
}
long long poww(long long a, long long b) {
  long long res = 1;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a;
    a = a * a;
  }
  return res;
}
long long gcd(long long a, long long b) {
  while (b) {
    long long t = b;
    b = a % b, a = t;
  }
  return a;
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long a[2];
int ans[1000100];
struct query {
  long long typ, a;
} qq[2000100];
long long f(long long a, long long b, long long n) {
  return ((a + b) % n + n) % n == 0 ? n : ((a + b) % n + n) % n;
}
int main() {
  int n, q;
  scanf("%d%d", &n, &q);
  for (int i = 0; i < q; i++) {
    scanf("%lld", &qq[i].typ);
    if (qq[i].typ == 1) scanf("%lld", &qq[i].a);
  }
  int match = 1;
  for (int i = 0; i < q; i++) {
    if (qq[i].typ == 2) {
      if (match == 1)
        a[0]--, a[1]++;
      else
        a[0]++, a[1]--;
      match ^= 1;
    } else {
      if (qq[i].a & 1) match ^= 1;
      a[0] += qq[i].a;
      a[1] += qq[i].a;
    }
  }
  for (int i = 1; i <= n; i++)
    if (i & 1)
      ans[f(i, a[1], n)] = i;
    else
      ans[f(i, a[0], n)] = i;
  for (int i = 1; i <= n; i++) printf("%d ", ans[i]);
  return 0;
}
