#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int tree[4 * N][2];
int arr[N];
int temp[N];
map<int, int> mp;
map<int, int> rev;
int maxx = -1;
int cnt;
int n, k;
void update(int x, int y, int val, int l = 1, int r = n, int idx = 1) {
  if (l > y || r < x) return;
  if (l >= x && r <= y) {
    tree[idx][1] += val;
    if (tree[idx][1] == 1) {
      tree[idx][0] = l;
    } else
      tree[idx][0] = 0;
    return;
  }
  int mid = (l + r) >> 1;
  update(x, y, val, l, mid, idx << 1);
  update(x, y, val, mid + 1, r, (idx << 1) + 1);
  tree[idx][1] = max(tree[idx << 1][1], tree[(idx << 1) + 1][1]);
  tree[idx][0] = max(tree[idx << 1][0], tree[(idx << 1) + 1][0]);
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k);
  for (int i = 1; i <= n; ++i) scanf("%d", &arr[i]), temp[i] = arr[i];
  sort(temp + 1, temp + n + 1);
  for (int i = 1; i <= n; ++i) {
    if (mp.count(temp[i]) == 0) {
      mp[temp[i]] = ++cnt;
      rev[cnt] = temp[i];
    }
  }
  for (int i = 1; i <= n; ++i) arr[i] = mp[arr[i]];
  for (int i = 1; i <= n; ++i) {
    if (i - k >= 1) {
      update(arr[i - k], arr[i - k], -1);
    }
    update(arr[i], arr[i], 1);
    if (i >= k) {
      if (!tree[1][0])
        printf("Nothing\n");
      else
        printf("%d\n", rev[tree[1][0]]);
    }
  }
}
