#include <bits/stdc++.h>
using namespace std;
const int N = (int)2e5 + 10;
long long int vis[N];
vector<vector<int> > v;
int flag = 0;
int in[N], out[N];
int vis1[N];
int dfs(int t) {
  vis[t] = 1;
  for (long long int i = 0; i < (long long int)(v[t].size()); i++) {
    if (vis[v[t][i]] == 0) {
      dfs(v[t][i]);
    }
  }
  return 0;
}
const long long int mod = 1000000007;
long long int powmod(long long int a, long long int b) {
  long long int res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int lcm(int a, int b) { return a * (b / gcd(a, b)); }
map<long long int, long long int> ph;
int main() {
  int n, k;
  cin >> n >> k;
  int a[n + 5];
  vector<pair<int, int> > v1;
  for (long long int i = 0; i < n; i++) {
    cin >> a[i];
    if (vis[a[i]] == 0) {
      v1.push_back(make_pair(a[i], i));
      vis[a[i]] = 1;
    }
  }
  sort(v1.begin(), v1.end());
  if ((long long int)(v1.size()) < k)
    cout << "NO" << endl;
  else {
    cout << "YES" << endl;
    for (long long int i = 0; i < k; i++) {
      cout << v1[i].second + 1 << " ";
    }
    cout << endl;
  }
  return 0;
}
