#include <bits/stdc++.h>
using namespace std;
int mid(int x, int y, int z) {
  if (x < y && y < z) return true;
  if (x > y && y > z) return true;
  return false;
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n;
    scanf("%d", &n);
    vector<int> ans;
    for (int i = n; i--;) {
      int p;
      scanf("%d", &p);
      if (ans.size() < 2) {
        ans.push_back(p);
      } else {
        if (mid(ans[ans.size() - 2], ans.back(), p)) {
          ans.pop_back();
        }
        ans.push_back(p);
      }
    }
    printf("%lu\n", ans.size());
    for (int i = 0; i < ans.size(); i++) {
      printf("%d%c", ans[i], i == ans.size() - 1 ? '\n' : ' ');
    }
  }
}
