#include <bits/stdc++.h>
using namespace std;
bool p[10000001] = {0};
int prime[10000001], np = 0;
int pa[10000001] = {0}, pb[10000001] = {0};
int ina[100001], inb[100001], a[100001], b[100001];
vector<int> s1, s2;
int main() {
  for (int i = 2; i <= 10000000; i++)
    if (!p[i]) {
      prime[np++] = i;
      for (int j = i + i; j <= 10000000; j += i) p[j] = 1;
    }
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%d", &ina[i]);
    a[i] = ina[i];
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &inb[i]);
    b[i] = inb[i];
  }
  for (int i = 0; i < n; i++) {
    int j = 0;
    while (prime[j] <= 3200) {
      if (prime[j] > a[i]) break;
      while (a[i] % prime[j] == 0) a[i] /= prime[j], pa[prime[j]]++;
      j++;
    }
    if (a[i] != 1) pa[a[i]]++;
  }
  for (int i = 0; i < m; i++) {
    int j = 0;
    while (prime[j] <= 3200) {
      if (prime[j] > b[i]) break;
      while (b[i] % prime[j] == 0) b[i] /= prime[j], pb[prime[j]]++;
      j++;
    }
    if (b[i] != 1) pb[b[i]]++;
  }
  for (int i = 0; i < np; i++) {
    int x = prime[i], t = min(pa[x], pb[x]);
    pa[x] -= t, pb[x] -= t;
  }
  printf("%d %d\n", n, m);
  for (int i = 0; i < n; i++) {
    int j = 0, num = 1;
    while (prime[j] <= 3200 && p[ina[i]]) {
      if (prime[j] > ina[i]) break;
      int cnt = 0;
      while (ina[i] % prime[j] == 0) ina[i] /= prime[j], cnt++;
      cnt = min(cnt, pa[prime[j]]);
      pa[prime[j]] -= cnt;
      for (int k = 0; k < cnt; k++) num *= prime[j];
      j++;
    }
    if (ina[i] != 1 && pa[ina[i]]) num *= ina[i], pa[ina[i]]--;
    printf("%d ", num);
  }
  printf("\n");
  for (int i = 0; i < m; i++) {
    int j = 0, num = 1;
    while (prime[j] <= 3200 && p[inb[i]]) {
      if (prime[j] > inb[i]) break;
      int cnt = 0;
      while (inb[i] % prime[j] == 0) inb[i] /= prime[j], cnt++;
      cnt = min(cnt, pb[prime[j]]);
      pb[prime[j]] -= cnt;
      for (int k = 0; k < cnt; k++) num *= prime[j];
      j++;
    }
    if (inb[i] != 1 && pb[inb[i]]) num *= inb[i], pb[inb[i]]--;
    printf("%d ", num);
  }
}
