#include <bits/stdc++.h>
template <typename T, typename U>
inline void swap(T &a, U &b) {
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
}
inline void swap(int &a, int &b) {
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
}
inline void swap(long long &a, long long &b) {
  a = a ^ b;
  b = a ^ b;
  a = a ^ b;
}
template <typename T, typename U>
inline void smax(T &a, U b) {
  if (b > a) a = b;
}
template <typename T, typename U>
inline void smin(T &a, U b) {
  if (b < a) a = b;
}
inline int gcd(int a, int b) {
  if (a < b) swap(a, b);
  while (b > 0) {
    a %= b;
    swap(a, b);
  }
  return a;
}
long long nchose(int a, int b) {
  long long ans = 1;
  smax(a, b - a);
  int p = 2;
  for (int i = (b - a + 1); i <= (b); i++) {
    ans *= (long long)i;
    while (p <= a && ans % p == 0) ans /= p++;
  }
  return ans;
}
using namespace std;
static long long MOD = 1000000007;
unsigned char rev(unsigned char c) {
  unsigned char res = 0, p1 = 1, p2 = 128;
  while (p2 != 0) {
    res += (p1 & c) > 0 ? p2 : 0;
    p2 /= 2;
    p1 *= 2;
  }
  return res;
}
int main() {
  unsigned char c, last = 0;
  scanf("%c", &c);
  while (c != 0 && c != '\n') {
    last = rev(last) - rev(c);
    cout << (int)last << endl;
    last = c;
    scanf("%c", &c);
  }
}
