#include <bits/stdc++.h>
using namespace std;
void file() {}
void fast() {
  std::ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
}
long long gcd(long long a, long long b) { return !b ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int dx[] = {0, 0, 1, -1, 1, 1, -1, -1};
int dy[] = {1, -1, 0, 0, 1, -1, 1, -1};
int main() {
  file();
  fast();
  string a;
  cin >> a;
  vector<string> s;
  for (int i = 0; i < a.size(); i++)
    if (!isalpha(a[i])) {
      string f;
      f += a[i];
      if (a[i] != '|')
        s.push_back(f);
      else {
        if (s.size() && s.back().back() == '|')
          s.back() += '|';
        else
          s.push_back(f);
      }
    }
  vector<int> v(s.size(), 0);
  bool ok1 = 0, ok2 = 0;
  int l = -1, r = -1;
  for (int i = 0; i < s.size(); i++)
    if (s[i] == "[")
      ok1 = 1;
    else if (s[i] == ":" && ok1) {
      ok2 = 1;
      if (l == -1) l = i;
    } else if (s[i][0] == '|' && ok1 && ok2)
      v[i]++;
  ok1 = 0, ok2 = 0;
  for (int i = (int)s.size() - 1; i >= 0; i--)
    if (s[i] == "]")
      ok1 = 1;
    else if (s[i] == ":" && ok1) {
      ok2 = 1;
      if (r == -1) r = i;
    } else if (s[i][0] == '|' && ok1 && ok2)
      v[i]++;
  int mx = -1;
  if (l != -1 && r != -1 && l < r) {
    mx = 4;
    for (int i = l + 1; i < r; i++)
      if (v[i] == 2) mx += s[i].size();
  }
  cout << mx;
}
