#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define rusha scanf("%d",&n);rep(i,1,n)scanf("%d",&a[i]);
#define rushb scanf("%d",&t);while(t--)
#define debug(x) cout<<" L-B-W-- "<<x<<" --N-B\n"
#define pb push_back
#define eb emplace_back
#define pii pair<int,int>
#define vii vector<int>
#define fi first
#define se second
#define mem(a,b) memset(a,b,sizeof a)
#define all(x) (x.begin(),x.end())
#define judgef printf("%s\n",f?"Yes":"No")
#define Judgef printf("%s\n",f?"YES":"NO")
#define sz(x) ((int)(x).size())
#define sf(x) (sizeof(x))
#define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }
using namespace std;
typedef long long ll;
typedef double db;
const double pai = acos(-1.0);
const double eps = 1e-8;
const int mod=998244353;
//const int mod=1e9+7;
const int inf=1e9+7;
//const ll inf=0x7f7f7f7f1234abcd;
const int maxn=2e5+10;
void err(istream_iterator<string> it) {}
template<typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
	cerr << *it << " = " << a << endl;
	err(++it, args...);
}
inline ll ksm(ll x,ll y){ll res=1;while(y){if(y&1)res=res*x%mod;x=x*x%mod;y>>=1;}return res;}
inline ll inv(ll a,ll p){if(a==1)return 1;return (p-p/a)*inv(p%a,p)%p;}
inline ll lcm(ll a,ll b){return a * b / __gcd(a, b);}
//int t,n,m,k;

int main(){
    
    char a;
    scanf("%c",&a);
    if(a>='A'&&a<='Z') puts("A");
    else puts("a");
    
    return 0;
}








//int n,x,p[2050],ans[2050][2050];
//int getans(int a,int b){
//	if(ans[a][b]>0)return ans[a][b];
//	printf("? %d %d\n",a,b);
//	fflush(stdout);
//	scanf("%d",&x);
//	ans[a][b]=ans[b][a]=x;
//	return x;
//}
//int main(){
//	cin>>n;
//	int a=1,b=2,val=getans(1,2),id;
//	for(int i=3;i<=n;i++){
//		int tmp=getans(i,b);
//		if(tmp<val)a=i,val=tmp;
//		else if(tmp==val)b=i,val=getans(a,i);
//	}
//	while(1){
//		int X=rand()%n+1;
//		if(X==a||X==b)continue;
//		int v1=getans(X,a),v2=getans(X,b);
//		if(v1!=v2){
//			id=(v1<v2?a:b);
//			break;
//		}
//	}
//	for(int i=1;i<=n;i++)if(id!=i){
//		if(ans[id][i]>0)p[i]=ans[id][i];
//		else p[i]=getans(id,i);
//	}
//	putchar('!'),putchar(' ');for(int i=1;i<=n;i++)printf("%d ",p[i]);
//}



//                  .,:,,,                                        .::,,,::
//                .::::,,;;,                                  .,;;:,,....:i:
//                :i,.::::,;i:.      ....,,:::::::::,....   .;i:,.  ......;i.
//                :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.
//                ;;..,::::;;;;ri,,,.                    ..,,:;s1s1ssrr;,.;r,
//                :;. ,::;ii;:,     . ...................     .;iirri;;;,,;i,
//                ,i. .;ri:.   ... ............................  .,,:;:,,,;i:
//                :s,.;r:... ....................................... .::;::s;
//                ,1r::. .............,,,.,,:,,........................,;iir;
//                ,s;...........     ..::.,;:,,.          ...............,;1s
//               :i,..,.              .,:,,::,.          .......... .......;1,
//              ir,....:rrssr;:,       ,,.,::.     .r5S9989398G95hr;. ....,.:s,
//             ;r,..,s9855513XHAG3i   .,,,,,,,.  ,S931,.,,.;s;s&BHHA8s.,..,..:r:
//            :r;..rGGh,  :SAG;;G@BS:.,,,,,,,,,.r83:      hHAcceptedHM3..,,,,.ir.
//           ,si,.1GS,   sBMAAX&MBMB5,,,,,,:,,.:&8       3@HAcceptedH#X,.,,,,,,rr
//           ;1:,,SH:   .A@&&B#&8H#BS,,,,,,,,,.,5XS,     3@MAccepted#As..,,,,:,is,
//          .rr,,,;9&1   hBHHBB&8AMGr,,,,,,,,,,,:h&&9s;   r9Accepted9:  . .,,,,;ri.
//          :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr.      ...,:rs.
//          ;s.     .:sS8G8GG889hi.        ....,,:;:,.:irssrriii:,.        ...,,i1,
//          ;1,         ..,....,,isssi;,        .,,.                      ....,.i1,
//          ;h:               i9HHBMBBHAX9:         .                     ...,,,rs,
//          ,1i..            :A#MBBBBMHB##s                             ....,,,;si.
//          .r1,..        ,..;3BMBBBHBB#Bh.     ..                    ....,,,,,i1;
//           :h;..       .,..;,1XBMMMMBXs,.,, .. :: ,.               ....,,,,,,ss.
//            ih: ..    .;;;, ;;:s58A3i,..    ,. ,.:,,.             ...,,,,,:,s1,
//            .s1,....   .,;sh,  ,iSAXs;.    ,.  ,,.i85            ...,,,,,,:i1;
//             .rh: ...     rXG9XBBM#M#MHAX3hss13&&HHXr         .....,,,,,,,ih;
//              .s5: .....    i598X&&A&AAAAAA&XG851r:       ........,,,,:,,sh;
//              . ihr, ...  .         ..                    ........,,,,,;11:
//                 ,s1i. ...  ..,,,..,,,.,,.,,.,..       ........,,.,,.;s5i.
//                  .:s1r,......................       ..............;shs,
//                  . .:shr:.  ....                 ..............,ishs.
//                      .,issr;,... ...........................,is1s;.
//                         .,is1si;:,....................,:;ir1sr;,
//                            ..:isssssrrii;::::::;;iirsssssr;:..
//                                 .,::iiirsssssssssrri;;:.


Measured memory_bytes: 3760