#include <bits/stdc++.h>
using namespace std;
struct Point {
  double x, y;
};
double Dist(Point p1, Point p2) {
  return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}
struct T {
  bool operator<(const T& o) const { return false; }
};
bool ISLETTER(char t) {
  if (t >= 'A' && t <= 'Z') return true;
  return false;
}
bool isletter(char t) {
  if (t >= 'a' && t <= 'z') return true;
  return false;
}
bool is_num(char t) {
  if (t >= '0' && t <= '9') return true;
  return false;
}
bool is_vowal(char t) {
  if (t == 'a' || t == 'e' || t == 'i' || t == 'o' || t == 'u' || t == 'y')
    return true;
  if (t == 'A' || t == 'E' || t == 'I' || t == 'O' || t == 'U' || t == 'Y')
    return true;
  return false;
}
int MOD(int aa) {
  if (aa < 0) aa *= -1;
  return aa;
}
bool isLN(int aa) {
  while (aa) {
    if (aa % 10 != 4 && aa % 10 != 7) return false;
    aa /= 10;
  }
  return true;
}
void BFS() {}
int GCD(int a, int b) {
  if (a < b) swap(a, b);
  return (!b) ? a : GCD(b, a % b);
}
int primos[1000001], cntp;
int n, m, fi, co, x, y, mat[1001][1001];
char a[1000001], b[1000001], c[1000001];
int la, lb, lc;
char mm[10][10];
int mark[10][10][10];
int xx[9] = {1, 1, 1, 0, 0, -1, -1, -1};
int yy[9] = {-1, 0, 1, -1, 1, -1, 0, 1};
bool saber(int f, int c) {
  if (f < 0 || c < 0 || f == 8 || c == 8) return false;
  return true;
}
void DFS(int f, int c, int p) {}
int nums[500005];
int suma;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> nums[i];
    suma += nums[i];
  }
  int cnt = 0;
  for (int i = 0; i < n; i++)
    if ((suma - nums[i]) == (n - 1) * nums[i]) cnt++;
  cout << cnt << endl;
  for (int i = 0; i < n; i++)
    if ((suma - nums[i]) == (n - 1) * nums[i]) cout << i + 1 << " ";
  return 0;
}
