#include <bits/stdc++.h>
using namespace std;
inline int ran() {
  static int x = 20160425;
  return (x = 0xdefaced * x + 1) & INT_MAX;
}
struct Node {
  Node *l, *r;
  long long sz, data;
  long long pri;
  Node(int d) { data = d, l = nullptr, r = nullptr, sz = 1, pri = ran(); };
} * BIT[200005];
inline int siz(Node *a) { return (a) ? (a->sz) : 0; }
void pull(Node *&a) {
  if (!a) return;
  a->sz = siz(a->l) + siz(a->r) + 1;
}
Node *Merge(Node *a, Node *b) {
  if (!a) return b;
  if (!b) return a;
  if (a->pri > b->pri) {
    a->r = Merge(a->r, b);
    pull(a);
    return a;
  }
  b->l = Merge(a, b->l);
  pull(b);
  return b;
}
void split(Node *s, int k, Node *&a, Node *&b) {
  int tmp = siz(s);
  if (!s) {
    a = b = nullptr;
    return;
  }
  if (s->data <= k) {
    a = s;
    split(s->r, k, a->r, b);
    pull(a);
  } else {
    b = s;
    split(s->l, k, a, b->l);
    pull(b);
  }
}
long long Rank(int a, Node *b) {
  Node *tmp1, *tmp2;
  split(b, a, tmp1, tmp2);
  if (!tmp1) return 0;
  long long ans = tmp1->sz;
  b = Merge(tmp1, tmp2);
  return ans;
}
void Insert(int a, Node *&b) {
  Node *tmp1, *tmp2;
  Node *tmp = new Node(a);
  split(b, a, tmp1, tmp2);
  tmp1 = Merge(tmp1, tmp);
  b = Merge(tmp1, tmp2);
}
void del(int a, Node *&b) {
  Node *tmp1, *tmp2, *tmp3, *tmp4;
  split(b, a - 1, tmp1, tmp2);
  split(tmp2, a, tmp3, tmp4);
  b = Merge(tmp1, tmp4);
}
int n;
long long a[200005] = {0};
inline int lowbit(int x) { return (x & (-x)); }
void BITinit(int n) {
  for (int i = 1; i <= n; i++) {
    for (int j = i; j <= n; j += lowbit(j)) {
      Insert(i, BIT[j]);
    }
  }
}
void BITedit(int l, int r) {
  for (int i = l; i <= n; i += lowbit(i)) {
    del(a[l], BIT[i]);
  }
  for (int i = r; i <= n; i += lowbit(i)) {
    del(a[r], BIT[i]);
  }
  for (int i = l; i <= n; i += lowbit(i)) {
    Insert(a[r], BIT[i]);
  }
  for (int i = r; i <= n; i += lowbit(i)) {
    Insert(a[l], BIT[i]);
  }
}
long long query(int l, int r, int a, int b) {
  long long ans = 0;
  for (int i = r - 1; i > 0; i -= lowbit(i)) {
    ans += (Rank(b - 1, BIT[i]) - Rank(a, BIT[i]));
  }
  for (int i = l; i > 0; i -= lowbit(i)) {
    ans -= (Rank(b - 1, BIT[i]) - Rank(a, BIT[i]));
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  long long cnt = 0;
  for (int i = 1; i <= n; i++) {
    a[i] = i;
  }
  BITinit(n);
  int m;
  cin >> m;
  for (int i = 0; i < m; i++) {
    int c, d;
    cin >> c >> d;
    if (c > d) swap(c, d);
    if (c == d) {
      cout << cnt << '\n';
      continue;
    }
    if (a[c] > a[d]) {
      cnt -= 2 * query(c, d, a[d], a[c]);
      cnt--;
      BITedit(c, d);
      swap(a[c], a[d]);
    } else {
      cnt += 2 * query(c, d, a[c], a[d]);
      cnt++;
      BITedit(c, d);
      swap(a[c], a[d]);
    }
    cout << cnt << '\n';
  }
}
