#include <bits/stdc++.h>
using namespace std;
template <typename T>
ostream& operator<<(ostream& out, const vector<T>& v) {
  out << "[";
  for (auto vi : v) out << vi << ", ";
  out << "]\n";
  return out;
}
int DX[] = {0, +1, 0, -1, 0};
int DY[] = {+1, 0, -1, 0, 0};
int format;
string HHMM;
int diff(string a, string b) {
  int result = 0;
  for (int i = 0; i < a.size(); i++) {
    result += (a[i] != b[i]);
  }
  return result;
}
string itos(int i) {
  char c_str[100];
  sprintf(c_str, "%02d", i);
  return string(c_str);
}
void solve() {
  string HH = HHMM.substr(0, 2);
  string MM = HHMM.substr(3, 2);
  int min_mm_diff = 100500;
  int min_mm;
  for (int mm = 0; mm < 60; mm++) {
    if (diff(itos(mm), MM) < min_mm_diff) {
      min_mm_diff = diff(itos(mm), MM);
      min_mm = mm;
    }
  }
  MM = itos(min_mm);
  int min_hh_diff = 100500;
  int min_hh;
  if (format == 12) {
    for (int hh = 1; hh <= 12; hh++) {
      if (diff(itos(hh), HH) < min_hh_diff) {
        min_hh_diff = diff(itos(hh), HH);
        min_hh = hh;
      }
    }
  } else if (format == 24) {
    for (int hh = 0; hh < 24; hh++) {
      if (diff(itos(hh), HH) < min_hh_diff) {
        min_hh_diff = diff(itos(hh), HH);
        min_hh = hh;
      }
    }
  } else {
    assert(false);
  }
  HH = itos(min_hh);
  cout << (HH + ":" + MM) << "\n";
}
void readData() { cin >> format >> HHMM; }
int main() {
  ios::sync_with_stdio(false);
  readData();
  solve();
  return 0;
}
